2016-03-31 5 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

ただ、オプションになります。この

<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のように外側の要素でng-ifを追加します。

ngCloakディレクティブは、アプリケーションのロード中に簡単にその生(コンパイルされていない) 形式でブラウザに表示されてからの角度HTMLテンプレート を防ぐために使用されています。私はあなたにもngCloakを使用することができると思います。

関連する問題