在data-ng-repeat中打印模板的最佳方法是什么?

时间:2016-05-07 13:17:54

标签: angularjs ng-repeat

在我的循环变量(对象数组)中,有6个条件,我必须构建模板。 对象内部的每个类型都具有不同的布局,几乎没有相似的结构。为了实现同样的目的,我必须添加大量的ng-if条件。

使用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>

1 个答案:

答案 0 :(得分:0)

您可以通过在单独的范围函数中隔离ng-if逻辑来实现此目的。

<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';
    }
}

希望这会给你一个想法。