2015-12-10 10 views
1

Я видел много подобных вопросов, но ни один из них не может решить мою проблему:Радио кнопки не проверялось

У меня есть нг-повтор, чтобы показать список элементов. И каждый из них имеет DIV, который показан, когда некоторые условия: '<div ng-if="someCondition"> </div>

И внутри этого DIV, у меня есть переключатель:

<input type="radio" ng-model="item.Prop" name="published" ng-value="true" ng-checked="item.Prop"> <span>published</span> 
<input type="radio" ng-model="item.Prop" name="published" ng-value="false"> <span>not published</span> 

Хотя другие функции работают, это не напрямую проверяется, когда мой div становится видимым. Однако, если я выбираю один из них, он меняет свою ng-модель.

Но почему это не выбрано в начале?

+0

предоставить код на plunker –

+0

показать больше КЧС, как вы циклических нг-повтора и модель –

+1

Я думаю 'item.Prop' ложно? – klskl

ответ

0

Я нашел решение:

Проблема заключалась в том, что для каждого элемента в цикле ng-repeat создаются флажки. Таким образом, каждый флажок имеет одно и то же имя, и поэтому ни один из них не может быть выбран.

Чтобы решить эту проблему, я только что дал уникальное свойство элементов в конце имен флажков.

<input type="radio" ng-model="item.Prop" name="published{{item.ID}}" ng-value="true" ng-checked="item.Prop"> <span>published</span> 
<input type="radio" ng-model="item.Prop" name="published{{item.ID}}" ng-value="false"> <span>not published</span> 

Вот plunker:

0

Трудно знать, основываясь на коде, который вы указали, но я предполагаю, что item.Prop является undefined. Если вы предоставите нам больше кода, скрипку или плункер, мы сможем помочь больше.

Пример скрипку демонстрирует поведение, вы испытываете: http://jsfiddle.net/HB7LU/20982/

Пример скрипку с чекбокс работает как вы хотите: http://jsfiddle.net/HB7LU/20983/

Смежные вопросы