使用jquery属性选中复选框时,Angular ng-model不会更新

时间:2016-10-31 14:15:32

标签: javascript jquery angularjs checkbox angular-ngmodel

代码试图通过jquery .prop函数设置checked属性。 但是ng-model仍然是空白的。

$('document').ready(function(){
    $("#mybutton").on('click',function(){
        $("#mycheckbox").prop('checked',true);
    });
});

<input type="button" id="mybutton" value="click">
<input type="checkbox" id="mycheckbox" name="one" ng-model="arr[1]" value="1" />

{{arr}}   -- is blank when checked with jquery and not blank when manually checked.

当我手动选中复选框时,ng-model被绑定并设置其值。 当您使用jQuery选中复选框时,能否帮助您更新ng-model?

2 个答案:

答案 0 :(得分:0)

当角度重新检查绑定属性如ng model和when digest runs时,您应该阅读。

用$ scope包装你的函数。$ applyAsync()方法如下:

   $scope.$applyAsync($("#mycheckbox").prop('checked',true));

这应该在控制器内完成。

如果你不想在无空间路径中做,你可以使用$ timeout。

再一次。所有dom操作都应该在指令/组件内部完成,你可以在其中访问variuos角度工具,如applyAsync和其他工具。

答案 1 :(得分:0)

您可以直接将模型值设为true。它会自动选中复选框, 不需要使用jquery。您可以使用ng-click并将一个函数调用到控制器,这将改变模型值。