Я новичок в 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;
Как я могу установить значение выбора с маркой, которую я получаю?
Извините, мой английский ужасен! Пожалуйста, помогите: =)
Я использую что-то вроде этого:
<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",
}
]
<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;
Ваш подход правилен при использовании ng-опций, однако product.brand
не привязан к объекту Brand. Что-то вроде этого работает:
контроллер:
$scope.brands = [
{
name: '1'
},
{
name: '2'
},{
name: '3'
}
];
$scope.product = {
brand: $scope.brands[1] // now it has a 'reference'
};