触发$ scope。$ watch静态属性更改时

时间:2014-09-05 13:59:00

标签: javascript jquery angularjs angularjs-directive

我有一个带有自定义指令的元素就是这样。

<div my-directive data-progress="0"></div>

my-directive如下。

return {

    scope: {
        progress: '@'
    }

    link: function($scope, $element, $attributes){

        $scope.$watch('progress', function(newVal){
           // do stuff with newVal
        })

    }
}

我遇到的问题是,当元素的数据进度被外部源(例如jQuery)更改时,它永远不会触发监视。我也试过使用$ attributes。$ observe但是没有被触发枯竭。这是一个自定义进度条指令,因此外部源将更新数据进度,我需要手表触发,以便我可以正确更新进度条。

1 个答案:

答案 0 :(得分:0)

您需要使用observe,因为您将其指定为属性(通过使用@),

$attributes.$observe("progress", function(newVal){

});

这里有关于它的文档:https://docs.angularjs.org/api/ng/type/ $ compile.directive.Attributes#$ observe