Angularjs 以指令名称作为参数的angular指令

Angularjs 以指令名称作为参数的angular指令,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我正在尝试创建一个列表/网格,该列表/网格将知道如何根据某个指令渲染其项,其中row rendering指令将是网格的一个参数 我能够创造出这样的东西: <div repeat-directive-per-item="directiveName" items="my_items" item-attr="an_item"></div> <div ng-repeat="{{itemAttr}} in results" {{rowDirective}} /><

我正在尝试创建一个列表/网格,该列表/网格将知道如何根据某个指令渲染其项,其中row rendering指令将是网格的一个参数

我能够创造出这样的东西:

<div repeat-directive-per-item="directiveName" items="my_items" item-attr="an_item"></div>
<div ng-repeat="{{itemAttr}} in results" {{rowDirective}} /></div>

通过从模板函数返回合成模板,但在另一个指令中使用该指令时遇到问题

在我试图解决这些问题之前,我想问一下,这是否可以用更简单的方法来实现

我正在寻找如下语法:

<div repeat-directive-per-item="directiveName" items="my_items" item-attr="an_item"></div>
<div ng-repeat="{{itemAttr}} in results" {{rowDirective}} /></div>

但ng repeat似乎不愿意进行这种类型的解释

我知道我也可以限制
rowdirection
和匹配
itemAttr
的对,并对它们执行if,但感觉不太一般,也不太优雅

不能使用
{{}
插值创建属性

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

template: function(element, attrs){
   return '<div ng-repeat="{{itemAttr}} in results" '+ attrs.repeatDirectivePerItem +' /></div>'
}
模板:函数(元素,属性){
返回“”
}
不能使用
{{}
插值创建属性

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

template: function(element, attrs){
   return '<div ng-repeat="{{itemAttr}} in results" '+ attrs.repeatDirectivePerItem +' /></div>'
}
模板:函数(元素,属性){
返回“”
}

这或多或少是我的指示,但是,当尝试在另一个指令中使用此命令时,会出现问题,因为参数尚未绑定到包含指令的范围,因此无法传递到此指令:(这或多或少是我的指示,但是,当试图在另一个指令中使用它时,它会出现问题,因为参数尚未绑定到包含指令的范围,因此无法传递到此指令:(
{itemAttr}}
{rowdirection}}的最终目的是什么
,他们到底应该怎么做?如果看不到整体情况,很难提出可行的建议。一些简单的plunker就可以了。rowdirective是一个指令的名称,它希望有一个隔离作用域,该作用域具有一些属性,我希望将当前结果绑定到该属性。而itemAttr希望允许我选择不同的属性attibute当前结果绑定到的属性的名称。因此“接口”这样的行呈现指令只需要一个knows属性,就可以从中读取所有数据。这种情况太复杂,无法用文字来描述,并且可能包含XY问题,这就是为什么如果您正在寻找更简单的方法来实现这一点,那么示例代码是必不可少的。
{itemAttr}的最终目的是什么
{{rowDirective}
,他们到底应该怎么做?如果看不到整体情况,很难提出可行的建议。一些简单的plunker就可以了。rowdirective是一个指令的名称,它希望有一个隔离作用域,该作用域具有一些属性,我希望将当前结果绑定到该属性。而itemAttr希望允许我选择不同的属性attibute当前结果绑定到的属性的名称。因此“接口”这种行呈现指令所要求的只是一个knows属性,它们从中读取所有数据。这种情况太复杂,无法用文字来描述,并且可能包含XY问题,这就是为什么如果您正在寻找更简单的方法来实现这一点,示例代码是必不可少的。