我正在尝试创建一个列表/网格,它可以根据某些指令呈现其项目,其中行呈现指令将是网格的参数。
我能够创建这样的东西:
<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,但感觉不那么通用且不太优雅。
答案 0 :(得分:0)
您无法使用
{{}}
插值创建属性。
在指令中创建模板时,您可以使用指令的模板功能,它可以帮助您通过访问attribute
值来添加属性。
template: function(element, attrs){
return '<div ng-repeat="{{itemAttr}} in results" '+ attrs.repeatDirectivePerItem +' /></div>'
}