更改AngularJS指令内的元素宽度

时间:2015-08-21 14:34:35

标签: angularjs angularjs-directive

我的指令链接中有这样的代码:

        scope.parentWidth = function (){
            return{'width':element.parent().width()}
        }


        scope.$watch(scope.parentWidth, function(oldValue, newValue) {
            if (oldValue !== newValue) {
                element.css('width', newValue);
                console.log(element.width());
            }
        }, true);

但是在控制台中我看到每次宽度都是相同的(元素是一个简单的div)。即使newValue发生了变化。我做错了吗?

1 个答案:

答案 0 :(得分:0)

scope.$watch('parentWidth', function(oldValue, newValue) {
            if (oldValue !== newValue) {
                element.css('width', newValue +'px');
                console.log(element.width());
            }
        }, true);

当观察作用域的属性时,只需将其作为字符串提供,否则第一个参数也可以是一个简单的幂等函数

scope.$watch(function(){return scope.parentWidth;}, function(oldValue, newValue) {
            if (oldValue !== newValue) {
                element.css('width', newValue +'px');
                console.log(element.width());
            }
        }, true);