AngularJs不与ng-model绑定ng-checked

时间:2013-01-09 00:27:46

标签: javascript angularjs

我用Google搜索了一下,发现人们有这个问题,但我没有找到任何解决方案。

所以这是我的代码


%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而在页面呈现时检查了某些复选框。我实际上并没有再点击它的复选框。当涉及到控制器时,范围似乎忽略了由于ng-checked而被检查的范围。如何让它们很好地同步?

1 个答案:

答案 0 :(得分:2)

我不确定我明白真正的问题是什么,但看看这fiddle是否符合您的要求。 (我从other post获得了preferred_genres列表。)

正在根据复选框状态更新控制器范围属性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。