Ошибка AngularJS между моделью и контроллером

0

Я получаю список объектов с моего сервера в следующем формате:

[ { 'id' : 1, ... }, { 'id' : 2, ... }, { 'id' : 3, ... } ]

Я пытаюсь, чтобы позволить пользователю выбирать объекты с помощью radio кнопки. Вот следующий код HTML:

<input type="radio" ng-model="id" value={{ obj.id }} />

Я повторяю этот фрагмент кода для каждого объекта в списке. Проблема заключается в том, что при нажатии одной из кнопок появляется следующая ошибка:

Error: ngModel:numfmt
Model is not of type 'number'

Идентификатор каждого объекта явно является числом, так как следующий журнал консоли:

console.log(typeof (obj.id)); <- return 'number'

Но это все еще не работает. Может ли кто-нибудь помочь мне узнать, почему это ломается?

EDIT Код, повторяющийся через массив объектов:

<ul ng-repeat="obj in objectList>
   <li>
      <label><input type="radio" string-to-number ng-model="id" value={{ obj.id }} />
      {{ obj.id }}</label>
   </li>
</ul>
  • 0
    Нет. numfmt относится к numerical format ошибки из автоматически генерируемой страницы Angular error. В нем говорится, что ошибка - это ошибка ngModel , а точнее ошибка numerical format . Что не имеет смысла для меня, потому что я дважды проверил внутри этого контроллера, что данные фактически являются числом. :(
  • 0
    Можете ли вы показать код, который перебирает массив объектов?
Показать ещё 5 комментариев
Теги:
string
types
integer

1 ответ

1
Лучший ответ

HTML должен быть:

<ul ng-repeat="obj in objectList">
   <li>
      <input type="radio" name=group1 ng-model="group1.id" ng-value='obj.id' />
      {{ obj.id }
   </li>
</ul>
    <p>Model = {{group1.id}}</p>
</div>

Существует несколько проблем с кодом

  • Атрибут ng-model должен быть установлен в свойство объекта. (Используйте точку.)

  • Используйте ng-value для угловых выражений

  • Группа радиокнопки должна быть определена с помощью атрибута name.

ДЕМО на JSFiddle.

  • 0
    Я понял, спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню