Угловой выбор и модель

0

Я пытаюсь заполнить поле выбора содержимым из массива. Я в замешательстве, что такое моя "модель".

Я ищу для доступа к контенту из ctrl.contents который представляет собой массив объектов. Я предполагаю, что это моя "модель".

ViewPage.html

<div>
  <select ng-model="ctrl.contents"
    ng-options="content.title.name in content.title.name as content in contents">

  </select>
</div>

var ctrl = this из ViewPage.controller.js

Если бы я был в console.log(ctrl.contents) из ViewPage.controller.js, то был бы возвращен массив объектов:

[
  > 0: ContentViewModel
    > title: Object  // Each numbered array object has similar contents 
      name: "Thomas"
      ...
  > 1: ContentViewModel
  > 2: ContentViewModel
  > 3: ContentViewModel
]

Кажется, я не могу получить поле выбора, заполненное чем угодно. Я неправильно понял модель ng?

  • 0
    Ваш объект выглядит следующим образом: {title: object, name: "Thomas"}? А в ng-options вы хотите отобразить 'name'?
  • 0
    Нет, флаг «name» не попадает под объект «title». Извините, я должен был сделать соответствующий отступ.
Показать ещё 1 комментарий
Теги:

2 ответа

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

Ваша "модель" - это отдельная переменная, которая будет содержать выбранное значение вашего меню выбора - установите для него что-то вроде ctrl.selectedItem.

Параметры ng-options должны выглядеть так:

ng-options="content.title.name for content in ctrl.contents"

Для получения дополнительной информации см. Этот пример - проверьте как html, так и js в app.js.

  • 0
    Это сработало отлично. Спасибо за объяснение модели немного.
0

Это должен быть ваш html

<div>
  <select ng-model="ctrl.selectedContent"
ng-options="content.title.name for content in ctrl.contents" ng-value="content">

  </select>
</div>

Ещё вопросы

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