根据范围值添加指令

时间:2015-06-28 12:40:57

标签: javascript angularjs angularjs-directive

我在像

这样的控制器范围内有一个数组
$scope.data = [{
   "name" : "test",
   "type" : "test"
 },{
   "name" : "production",
   "type" : "production"
 }]

现在在视图中我正在对模型数据执行循环,而我有两个指令就是测试另一个是生产。我想根据类型在ng-repeat中显示那些指令。所以我写了

<div ng-repeat="item in data">
  <test ng-if="item.type == 'test'"></test>
  <production ng-if="item.type == 'production'"></production>   
</div>

这个工作正常。但我的问题是,不是添加这些ng-if是否有更好的出路,以便我可以在dom中添加这些指令,具体取决于模型的类型值。我尝试过:

<{{item.type}}></{{item.type}}>

但显然它没有用。

1 个答案:

答案 0 :(得分:0)

为什么不尝试使用可作为条件使用的范围数据的唯一指令:

<div ng-repeat="item in data">
  <directive data-env="item.type" data-name="item.name"></directive>
</div>

在指令中,您可以使用$scope.env执行有条件的操作并仅显示您需要的内容。