为什么指令不监视值的变化?
Why a directive doesn't watch the value change?
我有一个指令看起来像这样:
directive('parcelsCarousel',function () {
return {
restrict:'E',
replace:true,
transclude:true,
templateUrl:'/partials/parcels-carousel.html',
link:function (scope, element, attrs) {
scope.$watch('favoriteParcelsList', function (favoriteParcelsList) {
if (scope.favoriteParcelsList != undefined)
console.log(scope.favoriteParcelsList.length)
});
}
}
});
我将一个项目从控制器推到favoriteParcelsList
,但是$watch没有运行。我怎么做错了?我确信我错过了一些小的东西,因为我有几个其他的指令有类似的结构,他们工作得很好。
看到更多的代码(最好是实时的,在一个plunker中)将是理想的,但我怀疑你想添加元素到favoriteParcelsList
,并让AngularJS捡起这些变化。如果是这样,需要注意的是,默认情况下$watch
跟踪对象的身份。如果你想跟踪更复杂对象的内容,你需要使用deep-watch。
你可以指示AngularJS通过向$watch
方法提供第三个布尔参数来深度监视变化(注意true在最后):
scope.$watch('favoriteParcelsList', function (favoriteParcelsList) {
if (scope.favoriteParcelsList != undefined)
console.log(scope.favoriteParcelsList.length)
}, true);
相关文章:
- 监视函数从服务返回不起作用,但作用域函数起作用
- 单击页面上的链接后高度发生变化
- React redux初始化功能,无论状态变化如何
- 角度ng变化或ng点击选择can'不起作用
- 每个选择器的Jquery css颜色都在变化,但字体大小却没有变化
- JS幻灯片与CSS背景颜色变化
- 重新加载页面时Javascript变量发生变化
- 如何获得Bootstrap Datepicker的年和月,因为它在变化
- 如何用jquery替换字符串中可能变化的字符
- 检测数据的变化
- Node.js通过scp监视传入归档的目录
- 如何检测和打印变化变量LESS
- js,对象's状态监视
- 当文本不断变化时,如何避免在按钮内移动文本
- JS监视CSS属性的变化,如“display:none”=>“display:block”
- 影子dom脚本,以监视主机的变化
- NPM脚本不监视js和SCSS文件的变化
- 监视{{values}}上的变化以触发DOM的指令操作
- 如何监视输入表单和按钮单击的变化
- 为什么指令不监视值的变化?