Angular指令监视元素属性只触发一次

时间:2016-12-08 19:14:15

标签: javascript angularjs

我有一个指令,在我的链接函数中的元素属性上有一个观察者。仅在第一页加载时触发观察者。

问题是$摘要周期没有被触发,因为它不是一个角度动作,所以我必须使用$ interval手动触发它而没有延迟(即不推荐使用$ digest()的无限执行)。

我没有使用手动$ digest找到解决方案。

有我的指示:

angular.module('Mymodule').directive('myDirective', function ($timeout) {
    return {
        restrict: 'A',
        link: function (scope, element) {

         $interval(function () {
                if (!scope.$$phase) {
                    scope.$digest();
                }
            });

            $timeout(function () {  
                scope.$watch(function () {
                    return element.outerWidth(true);
                }, function (newValue, oldValue) {
                    console.log("width changed", newValue)                 
                });

            }, 0, false)

        }
    }
});

0 个答案:

没有答案