2013-01-08 30 views
11

के साथ 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}} 
 

है और यह 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} 
 

से #{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