Angularjs初始检查状态和ngModel值

Angularjs初始检查状态和ngModel值,angularjs,checkbox,Angularjs,Checkbox,我使用的是angularjs 1.6.1 这是我的HTML: <label ng-if="parents.children" ng-repeat="child in parents.children" class="checkbox" > <input type="checkbox" ng-model="selected.category[parents.cat_ID][child.cat_ID]" id="{{child

我使用的是angularjs 1.6.1

这是我的HTML:

<label ng-if="parents.children" ng-repeat="child in parents.children" class="checkbox" >
    <input type="checkbox"
            ng-model="selected.category[parents.cat_ID][child.cat_ID]"
            id="{{child.cat_ID}}"
            name="{{child.cat_ID}}"
    >
    <i class="icon fa fa-circle-o"></i>
    <span class="name">{{child.name}} {{child.found}} {{child.cat_ID}}</span>
</label>
然后复选框将被选中,但是$scope.selected将完全为空。如果我改用:

ng-init="selected.category[parents.cat_ID][child.cat_ID] = child.found"
然后它将用正确的值填充$scope.selected,但显示复选框checked status完全错误

我甚至试过

ng-false-value="false"
ng-true-value="true"
但一切都没有改变

谢谢你的帮助! 谢谢

这是因为ngInit指令不会创建新的作用域并在当前作用域中填充变量


相反,在另一种情况下,如果在ng if块内指定selected,则在与控制器作用域不同的ngIf子作用域内执行此操作,则其原型继承自父作用域,但对其作用域的每次更改都将屏蔽外部作用域,这就是为什么您会看到$scope.selected仍然为空。

感谢您的澄清。。。但这意味着我不能实现我想要的?要显示两个选中的数据并将其置于选定的位置?是的,使用ng init,或者如果使用ng showWell,您可以尝试更改ng,如果使用ng showWell也完全尝试,但得到相同的结果,我已删除ng。。。还有其他选择吗?我已经做了好几个小时了。。。开始考虑一个手动的丑陋的解决方法,我真的不喜欢。。。
ng-false-value="false"
ng-true-value="true"