我有一个简单的复选框,如下所示:
<input type="checkbox" name="userGroup" ng-model="selectedAll" ng-change="selectAll();"></input>
我在控制器中将selectedAll
模型启动为false。在我的selectAll()函数中,我记录了该标志的值。但它仍然是假的,当我选中并取消选中复选框时不会更新。有什么理由和解决方案吗?
更新
我的控制器代码:
$scope.selectedAll = false;
$scope.selectAll = function() {
console.log($scope.selectedAll);
}
答案 0 :(得分:3)
尝试使用&#39;点缀&#39; NG-模型:
<input type="checkbox" name="userGroup" ng-model="obj.selectedAll" ng-change="selectAll();"></input>
-
$scope.obj = {
selectedAll: false
}
$scope.selectAll = function() {
console.log($scope.obj.selectedAll);
}
答案 1 :(得分:0)
这里我创建了一个plnkr
<input type="checkbox" name="userGroup" ng-model="selectedAll" ng-change="selectAll();"></input>
{{selectedAll}}
它的变化标志也在我获得ng-change的更新价值
答案 2 :(得分:0)
我发现了这个问题。我使用angular-ui-router进行路由。有问题的复选框位于一个状态视图(视图B)中,该视图由该控制器控制。控制器也被其他一些状态视图(视图A)使用。在我的状态配置中,我已将此指定为View A的控制器,但不是View B的控制器,因为它是视图A的子节点,它应该继承控制器。只是为视图B明确指定了控制器,一切都开始工作。
简化:
A (normal view) > B(child view, contains checkbox)
.state('viewa', {
url: '/viewa',
templateUrl: '...',
controller: 'someCtrl'
})
.state('viewa.viewb', {
url: '/viewb',
templateUrl: '...',
controller: 'someCtrl' //ADDED THE CONTROLLER HERE
});
我希望这有助于使用有角度的ui路由器的人并面临同样的问题。