我的指令链接中有这样的代码:
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
发生了变化。我做错了吗?
答案 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);