为什么我的 AngularJS 组件对属性值更改没有反应?

Why doesn't my AngularJS component react to attribute value changes?

我在 SO 和整个网络上看到了几个关于此类主题的问题。具体来说,我尝试遵循 one clear example but can't get it to work in my code. I have a plunker,希望能说明我的问题;它遵循该示例,但不起作用。

$watch() 在页面加载(创建组件)时触发。但是,当我单击按钮并添加一点时,创建复选框的 ng-repeat 会触发,但 $watch() 不会。

使用手表collection。阅读它 here。适用于您的 plunkr 的解决方案是

 $scope.$watchCollection(
      "vm.myBits",
      function(newValue, oldValue) {
        console.log("a. new bit");
    });

An update version of your plunk

你也可以使用"deep"object检查,通过添加第三个参数'true'到手表。然而,这是非常 "expensive" 并且在 1.2.x

中引入 watchCollection 后不推荐使用

 $scope.$watch(
      "vm.myBits",
      function(newValue, oldValue) {
        console.log("a. new bit");
    },true); // The TRUE is a deep checking and also works but is "expensive"