AngularJs не связывает ng-проверено с ng-моделью

Я прогуглил это и обнаружил, что у людей была эта проблема, но я не нашел никакого решения.

Так что это мой код


%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-check. Как мне сделать их синхронизацию красиво?

1 ответ

Решение

Я не уверен, что понимаю, в чем настоящая проблема, но посмотрим, нужна ли вам эта скрипка. (Я получил список предпочитаемых жанров из вашего другого поста.)

Свойство контекста контроллера preferred_genres обновляется в зависимости от состояния флажка:

<li ng-repeat="(genre, checked) in preferred_genres">
  <input type="checkbox" ng-model="preferred_genres[genre]"
   id="genre-{{$index + 1}}">

Как упоминалось в @dnc253 в вашем другом посте, вам, вероятно, не нужно проверять ng, так как каждый элемент имеет свою собственную ng-модель.

Другие вопросы по тегам