Angularjs 在ng repeat循环内设置的Parse指令

Angularjs 在ng repeat循环内设置的Parse指令,angularjs,angularjs-directive,angularjs-ng-repeat,Angularjs,Angularjs Directive,Angularjs Ng Repeat,想知道是否有可能在ng内部重复一个指令 <div data-ng-repeat="item in items" data-{{item.type}}="item"> </div> 结果是 <div data-link="item"><div> <div data-video="item"></div> 换句话说,我希望指令是动态的。 这可能吗 我认为这是不可能的,但您可以创建一个指令,用您想要的指令替换它: my

想知道是否有可能在ng内部重复一个指令

<div data-ng-repeat="item in items" data-{{item.type}}="item">
</div>

结果是

<div data-link="item"><div>
<div data-video="item"></div>

换句话说,我希望指令是动态的。
这可能吗

我认为这是不可能的,但您可以创建一个指令,用您想要的指令替换它:

myApp.directive('makeDirective', function($compile){
    return {
        compile: function CompilingFunction(element, attrs) {
            var directiveName = attrs.makeDirective;
            return {
                pre: function preLink(scope) {
                    element.replaceWith($compile('<div data-' + directiveName + ' ></div>')(scope));
                }
            }

        }
    }
})
myApp.directive('makeDirective',函数($compile){
返回{
编译:函数编译函数(元素,属性){
var directiveName=attrs.makeDirective;
返回{
前置:功能预链接(范围){
替换为($compile(“”)(scope));
}
}
}
}
})
像这样使用它:

<div make-directive="video"></div>

要传递属性,需要更新maker指令


我想我可以把这个问题与另一个问题联系起来是的,我发现这是不可能的。我确实更喜欢在其他地方找到的ng require=“template”,但这也是一个好主意。实际上我已经想到了这一点,但对于我正在尝试做的事情来说,这将是太“骇客”了。尽管如此,我还是会给你分数,因为总的来说,这是一个非常好的选择。