如何在未知范围内查看父对象?

时间:2016-10-27 22:22:27

标签: javascript angularjs angularjs-directive angularjs-scope

我正在编写一个可以在其他指令中使用的元素指令。 包含指令元素的父元素的结构是未知的。

我的指令需要观看名为' modelState'的对象。它位于父作用域树的某个位置。 但是,我无法告诉哪个父母,这就是为什么scope.$watch("$parent.modelState", ...);现在可以使用的原因。

如何在不知道我需要的父母是谁的情况下制作这款手表?

1 个答案:

答案 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