angular指令,它将指令名称作为参数

时间:2015-09-03 07:39:01

标签: angularjs angularjs-ng-repeat

我正在尝试创建一个列表/网格,它可以根据某些指令呈现其项目,其中行呈现指令将是网格的参数。

我能够创建这样的东西:

<div repeat-directive-per-item="directiveName" items="my_items" item-attr="an_item"></div>

通过从模板函数中复制合成模板,但是当我厌倦在另一个指令中使用该指令时遇到问题。

在我尝试解决这些问题之前,我想问一下这是否可以用更简单的方式完成。

我正在寻找这样的语法:

<div ng-repeat="{{itemAttr}} in results" {{rowDirective}} /></div>

但似乎ng-repeat不愿意做这种类型的插管。

我知道我也可以限制rowDirective和匹配itemAttr的对,并对它们执行if,但感觉不那么通用且不太优雅。

1 个答案:

答案 0 :(得分:0)

  

您无法使用{{}}插值创建属性。

在指令中创建模板时,您可以使用指令的模板功能,它可以帮助您通过访问attribute值来添加属性。

template: function(element, attrs){
   return '<div ng-repeat="{{itemAttr}} in results" '+ attrs.repeatDirectivePerItem +' /></div>'
}