2013-01-08 3 views
11

나는 이것을 작동시키지 못하는 것 같습니다. 그래서 나는 그들이 사용자 데이터베이스의 장르인지 확인하기를 원하는 많은 장르의 영화를 가지고 있습니다. 이것은 내 코드ng-checked로 angularJs의 확인란을 미리 선택하는 방법

 

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

입니다 그리고 이것은 그래서 모든 확인란이 선택해야 의미

 

{"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} 
 

HAML

에서 #{preferred_genres}입니다. 하지만 페이지를로드 할 때 확인란이 선택되어 있지 않습니다. 그러나 ng-checked을 이렇게 하드 코딩하면 작동합니다.

 

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

정말 이상합니다. 도와주세요.

답변

15

ng-checked의 값은 표현식이어야합니다. {{}}을 제거하십시오. 따라서 다음과 같은 내용이 있습니다.

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

ng-checked 지시어도 필요하지 않습니다. 모델의 값이 참이면, 그 값이 점검 될 것입니다.

+0

작동합니다! 감사. – toy

관련 문제