我需要创建一个包含单独的全功能指令的复合指令。我的一个组件指令向 dom 添加了一个元素,并且该元素绑定到组件指令控制器中的一个值。当复合指令在编译函数中添加组件指令时,它似乎可以工作,但在组件指令中具有 2 路绑定的部分似乎没有被编译,只是在屏幕。我意识到这有点令人费解,所以我包含了一个帮助澄清问题的方法。
app.directive('compositeDirective', function($compile){
return {
compile: compileFunction
}
function compileFunction(element, attrs){
attrs.$set("component-directive", "");
element.removeAttr("composite-directive");
element.after("<div>Component value when added in composite directive: {{compCtrl.myValue}}</div>");
return { post: function(scope, element){
$compile(element)(scope);
}};
}
});
app.directive('componentDirective', function(){
return {
controller: "componentController as compCtrl",
link: link
};
function link(scope, element){
element.after("<div>Component value: {{compCtrl.myValue}}</div>");
}
});
app.controller('componentController', function(){
var vm = this;
vm.myValue = "Hello";
});