Как установить значение в select из объекта в angularjs

0

Я новичок в Angular, поэтому, пожалуйста, будьте нежны :)

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

Бренды выглядят так:

Brands = [{name: "BRAND1", id=242},
          {name: "BRAND2", id=562}]

И я получил с сервера:

brandFromTheServer = {name: "BRAND2", id=562};

Это мой выбор:

<select id="brand" ng-model="product.brand" class="form-control" ng-options="brand as brand.name for brand in brands"></select>

И я хочу, чтобы выбор был установлен с помощью brandFromTheServer.

Я попробовал в контроллере:

$scope.product.brand = brandFromTheServer;

Как я могу установить значение выбора с маркой, которую я получаю?

Извините, мой английский ужасен! Пожалуйста, помогите: =)

  • 0
    какое выбранное вами значение?
Теги:
select
model

3 ответа

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

Я использую что-то вроде этого:

   <select ng-options="option.name for option in advertiserList" ng-model="selectedOption.advertiserChoice" class="form-control"></select>

И в моем контроллере у меня есть:

$scope.advertiserList = response.advertisers;
            var data = $scope.advertiserList.getIndexBy("id",  $scope.currentAdvertiser.id)
            $scope.selectedOption.advertiserChoice = $scope.advertiserList[data];

Метод getIndexBy() выглядит так:

Array.prototype.getIndexBy = function (name, value) {
          for (var i = 0; i < this.length; i++) {
              if (this[i][name] === value) {
                  return i;
              }
          }
      }

И мой рекламодательList json выглядит так:

"advertisers": [
    {
      "id": 1,
      "name": "Somebody Franck",

    },
    {
      "id": 2,
      "name": "Me Me me",

    }
]
  • 0
    Большое спасибо за ваш ответ, я попробую что-то подобное!
0
<select id="brand" ng-model="product.brand" class="form-control" ng-     options="brand as brand.name for brand in brands">
   <option value="o">Val 1</option>
   <option value="1">Val 2</option>
   <option value="2">Val 3</option>
</select>

$ scope.product.brand = 0 или 1 или 2;

0

Ваш подход правилен при использовании ng-опций, однако product.brand не привязан к объекту Brand. Что-то вроде этого работает:

контроллер:

$scope.brands = [
    {
      name: '1'
    },
    {
      name: '2'
    },{
      name: '3'
    }

  ];

  $scope.product = {
    brand: $scope.brands[1] // now it has a 'reference'
  };
  • 0
    Спасибо ! Используя brand: $ scope.brands [1] обновляет select, я попробую что-то вроде этого :)

Ещё вопросы

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