在我的循环变量(对象数组)中,有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>
答案 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';
}
}
希望这会给你一个想法。