当复选框的值更改时,$ watch不会在Angular的指令中被击中

时间:2015-06-02 18:12:20

标签: javascript angularjs angularjs-directive

我有这样的指令设置。

angular.module('app')
  .directive('bootstrapCheck', function () {
    return {
      restrict: 'A',
      require: '?ngModel',
      link: function (scope, element, attrs, ngModel) {
        $.getScript("../../Scripts/js/checkBoxFunctions.js",  function () {
        });
        scope.$watch(attrs.ngModel, function (newValue, oldValue) {
          //debugger;
        });
      }
    };
  });

它的html看起来像

<section id="dashboard-view" data-ng-controller="dashboard as vm">
  <input type="checkbox" ng-model="vm.my.bool.prop" ng-checked="vm.my.bool.prop" bootstrap-check>
</section>

和属性设置如下

var vm = this;
vm.my = {
  bool: {
    prop: true
  }
};

似乎复选框已绑定到该属性。但每当我点击复选框,我希望它打到调试器,但它不起作用。

1 个答案:

答案 0 :(得分:1)

我认为您没有在页面上加载$.getScript,因此$watch会抛出异常,因为$watch永远不会被执行。

如果删除该代码,我相信<div class="ui centered grid"> <div class="eight column wide"> <div>I want to be centered vertically on a page</div> </div> </div> 可以正常使用。

演示http://plnkr.co/edit/EB3yoccf1N9TLIAawnRM?p=preview

相关问题