как дать ng-опции для массива объектов? - PullRequest
3 голосов
/ 15 марта 2019

Я столкнулся с проблемой с моим json для привязки в теге select в angular.

Json:

{
"List": [
    {
        "service": [
            "one"
        ],

        "id": [
            1
        ]
    },
    {
        "service": [
            "two"
        ],

        "id": [
           2
        ]
    }
    ]
}

Здесь мне нужно связать свойство сервиса в теге select.Я получаю массив объектов.

Любая помощь будет оценена.

Спасибо

1 Ответ

1 голос
/ 15 марта 2019

Вы получаете массив, потому что каждый элемент в главном списке имеет свойство service и свойство id как массив, поэтому для заполнения списка опций вам необходимо использовать следующее:

ng-options="item.id[0] as item.service[0] for item in items.List"

Я сохранил список элементов в контроллере, используя $scope.items, и я ссылаюсь на него, используя ... in items.List в директиве ngOptions.

Значение каждого <option> и заголовка / метки в элементе <select> задается с помощью item.id[0] as item.service[0] for item - он выбирает первый элемент в каждом из массивов service и id для каждого из параметров .

Вот рабочий пример:

angular.module('app', []).controller('ctrl', function($scope) {
    $scope.items = {"List": [
      {
        "service": [
            "one"
        ],

        "id": [
            1
        ]
      },
      {
        "service": [
            "two"
        ],

        "id": [
           2
        ]
      }
    ]};
    
    $scope.selectionChanged = function(value) {
      console.log(value);
    };
    
    // You can also define a pre-selected option by uncommenting the following line 
    // $scope.selected = 2;
});


  
  
  
    Selected: 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...