我用谷歌搜索了一下,发现有人遇到这个问题,但我还没有找到任何解决方案。
这是我的代码
%section(ng-controller="UserCtrl" ng-init="user_genres=#{preferred_genres}")
%ul
%li(ng:repeat="genre in preferred_genres")
%input(type = "checkbox" ng:model="preferred_genres[genre]" id="genre-{{$index + 1}}" ng-checked="user_genres['{{genre}}']")
%label{:for => "genre-{{$index + 1}}"} {{genre}}
例如,如果由于 ng-checked 表达式为 true 并且在页面渲染上而选中了某些复选框。我实际上并没有再次单击该复选框。当涉及到 Controller 时,作用域似乎忽略了由于 ng-checked 而已检查的 Controller 。我怎样才能让它们很好地同步?
最佳答案
我不确定我是否理解真正的问题是什么,但看看这个 fiddle就是你想要的。 (我从您的 other post 获得了 Preferred_genres 列表。)
Controller 范围属性preferred_genres
正在根据复选框状态进行更新:
<li ng-repeat="(genre, checked) in preferred_genres">
<input type="checkbox" ng-model="preferred_genres[genre]"
id="genre-{{$index + 1}}">
正如 @dnc253 在您的其他文章中提到的,您可能不需要 ng-checked,因为每个项目都有自己的 ng-model。
关于javascript - AngularJs 不将 ng-checked 与 ng-model 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14226439/