Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 关于ng检查指令的澄清_Angularjs - Fatal编程技术网

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;
});