从angularjs $ watch更改后没有价值

时间:2016-09-12 14:51:57

标签: angularjs

在我的angularjs指令中,我使用以下代码来检测this和execute函数的变化,如下所示

$scope.$watch(angular.bind(this, function () {
                    return this.dat;
                }), function (newVal) {
         })

并且在我的主控制器中,我按如下方式调用指令

<line dat=ctrl.testdata></line>

在我的主控制器中,我已经定义了ctrl.testdata,如下所示

 self.testdata = {};
 self.testdata.dat = [ {'sdfds':'bbbb','sdfsd','lll'}]
 self.testdata.k = {
   "c": ["0y", "w6"],
   "rs": ["n", "i"]
}

当testdata.dat正在改变时,newVal正在改变,但是当testdata.k正在改变时,它将不会改变我如何提前感谢。

1 个答案:

答案 0 :(得分:0)

默认情况下,只检查对象相等 - 当您编辑它的道具时,您的测试数据相同;您可以使用另一个绑定,记住这一点,或使用深度相等(性能不佳);

$scope.$watch(angular.bind(this, function () {
                    return this.dat;
                }), function (newVal) {
         }, true)