Angularjs 关于ng检查指令的澄清
我在此引用该文件: 在这里,在页面底部提供的示例中,您可以看到单击第一个复选框也会选中第二个复选框 我发现,即使选中了第一个复选框,也可以取消选中第二个复选框——也就是说,在选中第一个复选框(主复选框)之后,第二个复选框会自动被选中。如果您现在尝试取消选中第二个复选框,它会起作用,我觉得很奇怪。Angularjs 关于ng检查指令的澄清,angularjs,Angularjs,我在此引用该文件: 在这里,在页面底部提供的示例中,您可以看到单击第一个复选框也会选中第二个复选框 我发现,即使选中了第一个复选框,也可以取消选中第二个复选框——也就是说,在选中第一个复选框(主复选框)之后,第二个复选框会自动被选中。如果您现在尝试取消选中第二个复选框,它会起作用,我觉得很奇怪。ng checked指令绑定到仍为true的master模型 那么,为什么可以取消选中第二个框?ng checked是否应确保选中状态始终与表达式同步?也就是说,如果第一个复选框仍处于选中状态,ng ch
ng checked
指令绑定到仍为true
的master
模型
那么,为什么可以取消选中第二个框?ng checked
是否应确保选中状态始终与表达式同步?也就是说,如果第一个复选框仍处于选中状态,ng checked是否应不允许第二个复选框处于未选中状态
只要选中主复选框,如何保持第二个复选框处于选中状态
参考代码:
检查我以检查两个:
ng checked指令可能(我没有检查角度源代码)在master
属性上设置了$watch。只有当该属性发生变化时,$watch才会启动。因此,当您更改slave复选框时,$watch不会启动,因此会发生更改
如果要使第二个复选框与第一个复选框保持同步,请将ng模型添加到从属
<input type="checkbox" ng-model="slave" ng-checked="master">
请注意,这也将起作用:
$scope.$watch('master + slave', function() {
$scope.slave = $scope.master;
});
关于您的信息,您可以看到Mark在中所说的内容的确认,其中
checked
是BOOLEAN\u ATTR
。根据Misko的说法,这是不正确的方法,但是,我不确定仅使用ng模型如何实现。这里是他的评论的链接。有没有办法在不检查ng的情况下实现这一点?
$scope.$watch('master + slave', function() {
$scope.slave = $scope.master;
});