11

私はこれを機能させることができないようです。そのため、ユーザーデータベースのジャンルであるかどうかを確認したい映画のジャンルがたくさんあります。これは私のコードです


%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}}

そして、これは#{preferred_genres}hamlからです


{"Action & Adventure":true,"Animation":true,"Art House & International":true,"Classics":true,"Comedy":true,"Documentary":true,"Drama":true,"Horror":true,"Kids & Family":true,"Musical & Performing Arts":true,"Mystery & Suspense":true,"Romance":true,"Science Fiction & Fantasy":true,"Special Interest":true,"Sports & Fitness":true,"Television":true,"Western":true}

つまり、すべてのチェックボックスをオンにする必要があります。しかし、ページをロードするときにチェックボックスがチェックされていません。ただし、ng-checkedこのようなものになるようにハードコードすると機能します。


ng-checked="user_genres['Western']"

これは本当に奇妙です。助けてください。

4

1 に答える 1

15

の値はng-checked式である必要があります。{{}} を取り除きます。したがって、次のようなものです。

 %input(type = "checkbox" ng-model="preferred_genres[genre]" id="genre-{{$index + 1}}" ng-checked="user_genres[genre]")

ng-checkedまた、必ずしもディレクティブさえ持つ必要はありません。モデルの値が true の場合は、チェックされます。

于 2013-01-08T23:47:57.893 に答える