我正在尝试构建一种机制,允许我在链接函数中解析指令。
示例:
angular.module('directives', [])
.directive('myContainer', ['$compile', function ($compile) {
return {
restrict: "E",
replace: true,
link: function (scope, element, attrs) {
angular.forEach(scope.component.components, function(component){
var newScope = scope.$new()
newScope.component = component;
var elem = angular.element('<'+component.type+'>'+'</'+component.type+'>')
//Trying to compile directive to be resolved
var resolvedDirective = $compile(elem)(scope)
element.append(resolvedDirective)
})
}
});
问题是,&#34; resolvedDirective&#34; (由component =&gt; type定义)只是创建一个包含其他指令名称的标记,稍后将对其进行解析。
为了示例,我的机制被简化了(递归...)
希望我的问题足够明确......
提前致谢!
答案 0 :(得分:0)
您的问题需要更清晰。请更新您指令的预期结果。
您可以遵循此模式。这个答案解释了如何在指令
中添加编译指令Angularjs directive add directives as attribute and bind them dynamically
在您的情况下,您想要附加新指令,编译并绑定它。
因此,请尝试在编译阶段中添加附加元素,并在postLink阶段使用 $ compile 。