2016-03-31 27 views
0

我正在使用Meteor和AngularJs处理项目。在ng-class呈现之前从助手载入数据

我用助手检索一些数据,然后我用ng-repeat来显示它们。

我使用清单模型(http://vitalets.github.io/checklist-model/)获取复选框选项的列表。

<li ng-repeat="t in types"> 
    <div ng-class="nametagClass(t)">{{t.name}}</div> 
    <input type="checkbox" data-checklist-value="t" 
     data-checklist-model="chosenTypes" class="sub-checkbox" /> 
</li> 

这里是NG级功能:

$scope.nametagClass=function(type){ 
      if($scope.chosenTypes.indexOf(type)>-1){ 
       return "nametag active-nametag"; 
      } 

      return "nametag"; 
     } 

的问题是,当NG-类调用该函数,从chosenTypes的数据尚未加载,所以选中的元素唐没有获得“主动 - 名牌”类。 (但是,当数据加载并检查一个元素时,类会发生变化)

如何在加载数据后延迟ng-class函数调用?

回答

1

在外部元件只需添加一个ng-if这样

<li ng-if="types" ng-repeat="t in types"> 
    <div ng-class="nametagClass(t)">{{t.name}}</div> 
    <input type="checkbox" data-checklist-value="t" data-checklist-model="chosenTypes" class="sub-checkbox" /> 
</li> 
0

ngIf将是一种选择。我想,你也可以使用ngCloak

的ngCloak指令用于防止角HTML模板 通过在其原始(未编译) 形式的浏览器,而你的应用程序加载,略微显示。

相关问题