我有像这样的HTML结构
<div ng-controller="parentCtrl">
<div ng-controller="childCtrl">
<input ng-model="selectAll" id="selectAll" type="checkbox" ng-click="selectAllChange()"></div>
</div>
</div>
这里是js代码
function parentCtrl($scope) {
$scope.selectAll = false;
$scope.selectAllChange = function() {
if($scope.selectAll){
console.log('ttt');
}
else
console.log('fff');
}
}
单击复选框是否已选中,在控制台中我总是fff
如何知道在这种情况下是否选中了复选框?
答案 0 :(得分:1)
在您的代码中,ng-model
绑定到childCtrl
的范围,但parentCtrl
内的代码正在访问由parentCtrl
创建的范围。< / p>
您可以尝试使用this
代替$scope
来触发范围触发功能:
if(this.selectAll){
然后使用ng-change
。
ng-change="selectAllChange()"
click
和change
事件确实意味着不同的事情:click
表示鼠标按下并在同一元素上鼠标向上,change
表示值已更改。当您使用ng-click
时,ng-model
尚未更新基础值。