【问题标题】:Events on model change wont fire模型更改事件不会触发
【发布时间】:2015-04-04 21:02:31
【问题描述】:

我尝试在 AngularJS 模型绑定复选框上使用 bootstrap-switch,但发现它不起作用。

进一步调查表明,当模型更改修改复选框时,Javascript onChange/onClick 事件根本没有触发。 如图FiddleJS

<input id="cb1" type="checkbox" ng-model="boolValue" /> Changing this wont trigger event on the other Checkbox<br/>

<input id="cb2" type="checkbox" ng-model="boolValue" /> Changing this does trigger the event!

<script>
   $('#cb2').on('change', function(){
       alert('changed');
   });
</script>
  • 为什么当 angular $digest 更改复选框状态时没有触发事件?
  • 我在这里做错了吗?

【问题讨论】:

    标签: javascript angularjs events angular-ngmodel bootstrap-switch


    【解决方案1】:

    change 事件仅在用户与元素交互时触发:

    注意:使用 JavaScript 更改输入元素的值,例如使用 .val(),不会触发事件。

    如果想在模型发生任何变化时执行代码,可以设置watch:

    $scope.$watch('boolValue', function(newVal) {
        //...
    });
    

    【讨论】:

    • 很遗憾知道这一点,这会让事情变得更加复杂:(
    猜你喜欢
    • 2012-01-19
    • 2017-03-11
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多