这是一个todo应用程序。当您在输入中键入内容时,新代码将附加到div.container
。然后使用ng-checked="checkAll"
的“新生儿”复选框(应检查container
中的所有复选框)不响应主复选框中ng-model="checkAll"
的更改。在那段时间内,已存在的ng-checked
辅助复选框正在响应主要复选框。如何解决?
<body ng-app="App" ng-controller="AppCtrl">
<h1 class="heading">TODODO!</h1>
<div class="container">
<form ng-submit="newTask()">
<input type="checkbox" ng-model="checkAll">
<input type="text" ng-model="text" name="text" placeholder="What tododo?">
</form>
<input type="checkbox" ng-checked="checkAll">
</div>
</body>
脚本:
var App = angular.module("App", []);
App.controller('AppCtrl', function ($scope) {
$scope.list = [];
$scope.newTask = function () {
if ($scope.text) {
$('.container').append("<div class='task'><input type='checkbox' ng-checked='checkAll'/>" + this.text + "</div>");
$scope.list.push(this.text);
$scope.text = '';
}
};
});
答案 0 :(得分:0)
问题是两个复选框都使用相同的模型。为每个模型创建一个不同的模型,并进行ng-checked。如果您在选中其中一个复选框时不想影响任何其他复选框,则该复选框显示有自己的属性名称。例如:
<body ng-app="App" ng-controller="AppCtrl">
<h1 class="heading">TODODO!</h1>
<div class="container">
<form ng-submit="newTask()">
<input type="checkbox" ng-model="doNotAffectSecond" ng-checked="doNotAffectSecond">
<input type="text" ng-model="text" name="text" placeholder="What tododo?">
</form>
<input type="checkbox" ng-model="doNotAffectFirst" ng-checked="doNotAffectFirst">
</div>
</body>
这是一般的,您可以自定义它。在您的情况下,如果您选中第一个复选框,checkAll
将为真,第二个将自动检查。