2016-05-07 15 views
0

私のループ変数(オブジェクトの配列)には、テンプレートを構築する必要があることに基づいて6つの条件があります。 オブジェクトの各タイプの内部配列はレイアウトが異なり、類似した構造はほとんどありません。同じことを実現するためには、ng-if条件の良い量を追加する必要があります。data-ng-repeat内のテンプレートを印刷する最も良い方法は?

data-ng-repeatを使用してテンプレートを印刷するにはどうすればよいですか?私はこの方法を使用

......

<div class="{{obj.type}}" data-ng-repeat="obj in arrayOfObj track by obj.id"> 
      <div data-ng-if="obj.type==='1'">Some logic nd cta</div> 
      <div data-ng-if="obj.type==='2'">Some logic nd cta</div> 
     <div data-ng-if="obj.type==='3'">Some logic nd cta</div> 
     <div data-ng-if="obj.type==='4'||obj.type==='5'||obj.type==='6'"> 
Type 4 Type5 Type 6 <div data-ng-if==='4'>This</div> 
    <div data-ng-if==='5'>This nd cta</div> 
    <div data-ng-if==='6'>This</div> 
    </div> 

    </div> 
+0

このような状況に対処する方法は複数あります。代わりに、可能な 'obj.type'値のそれぞれにマッチし、' ng-include = "'{{obj.type}} .html'" – Claies

+0

...または ' ngSwitch'? – dfsq

答えて

0

あなたは別々のスコープ関数内で自分のNG-かのロジックを分離することによって、これを達成することができます。

<div class="{{obj.type}}" data-ng-repeat="obj in arrayOfObj track by obj.id" ng-include="getAppropiateTemplate(obj)"> 

</div> 

次にコントローラ

$scope.getAppropiateTemplate = function(obj) {   
    switch (obj.type) { 
     case "1": 
      return 'partials/sometemplate.html'; 
     case "2": 
      return 'partials/othertemplate.html'; 
    } 
} 

ホープこれはあなたのアイデアを提供します。

関連する問題