我正在编写一个可以在其他指令中使用的元素指令。 包含指令元素的父元素的结构是未知的。
我的指令需要观看名为' modelState'的对象。它位于父作用域树的某个位置。
但是,我无法告诉哪个父母,这就是为什么scope.$watch("$parent.modelState", ...);
现在可以使用的原因。
如何在不知道我需要的父母是谁的情况下制作这款手表?
答案 0 :(得分:0)
在指令代码中创建隔离范围
yourAngularModule.directive('yourDirective', function() {
return {
restrict : 'E',
scope : {
yourModelState : '='
},
link : function(scope) {
scope.$watch('yourModelState', function (){
//do something
}
}
};
});
然后在使用指令
的HTML中 <your-directive your-model-state="$parent.modelState"><your-directive>
这样你的指令只关心scope.yourModelState