Angularjs 为什么复选框总是显示假值

Angularjs 为什么复选框总是显示假值,angularjs,Angularjs,我有这样的html结构 <div ng-controller="parentCtrl"> <div ng-controller="childCtrl"> <input ng-model="selectAll" id="selectAll" type="checkbox" ng-click="selectAllChange()"></div> </div> </div> 单击复选框(无论是否选

我有这样的html结构

<div ng-controller="parentCtrl">
    <div ng-controller="childCtrl">
        <input ng-model="selectAll" id="selectAll" type="checkbox" ng-click="selectAllChange()"></div>
    </div>
</div>
单击复选框(无论是否选中),在控制台中我总是得到
fff

如何知道在这种情况下是否选中了复选框?

在您的代码中,
ng模型
绑定到
childCtrl
的作用域,但是
parentCtrl
中的代码正在访问由
parentCtrl
创建的作用域

您可以尝试
this
而不是
$scope
来获取触发函数的作用域:

if(this.selectAll){
并改用
ng change

ng-change="selectAllChange()"
单击
更改
事件实际上意味着不同的事情:
单击
意味着鼠标在同一元素上下移动,
更改
意味着值已更改。使用
ng单击时,
ng model
不会更新基础值

ng-change="selectAllChange()"