2

私はこれをグーグルで検索し、人々がこの問題を抱えていることを知りましたが、解決策は見つかりませんでした。

これが私のコードです


%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のためにチェックされたものを無視しているようです。それらをうまく同期させるにはどうすればよいですか?

4

1 に答える 1

3

本当の問題が何であるかはわかりませんが、このフィドルがあなたの望むものであるかどうかを確認してください。(私はあなたの他の投稿から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-modelがあるため、おそらくng-checkedは必要ありません。

于 2013-01-09T04:25:45.617 に答える