为什么$ watch不能像我期望的那样工作 - Angular

时间:2013-10-21 17:45:41

标签: javascript angularjs

我正在尝试在控制器中查看值。当它发生变化时,我想发出广播,但我从未进入$watch功能。这是功能:

  $scope.$watch($scope.selectedEncounter, function(selectedEncounter) {
    $scope.$broadcast('selecteRowChange', { encounter: selectedEncounter });
  });

我可以观看与示波器相关的东西吗?如果是这样,我对此代码的问题是什么。如果没有,我该如何实现此代码?

2 个答案:

答案 0 :(得分:3)

您应该将function或属性名称传递给$watch函数。

因此,在您的情况下,您应该将代码更改为:

$scope.$watch('selectedEncounter', function(value) {
  // ...
});
来自文档的

Here is some more info

答案 1 :(得分:1)

您正在观看的对象是一个复杂的对象。因此,您应该在代码中将objectEquality设置为true,如下所示:

$scope.$watch('selectedEncounter', function(selectedEncounter) {
// ....
}, true);

注意true值作为最后$scope.$watch函数的最后一个参数。