Как получить значение значения параметра с помощью функции AngularJS?
Я пытаюсь получить текстовое значение списка опций, используя AngularJS
Вот мой фрагмент кода
<div class="container-fluid">
Sort by:
<select ng-model="productList">
<option value="prod_1">Product 1</option>
<option value="prod_2">Product 2</option>
</select>
</div>
<p>Ordered by: {{productList}}</p>
{{productList}}
возвращает значение параметра, например: prod_1. Я пытаюсь получить текстовое значение "Продукт 1". Есть ли способ сделать это?
Ответы
Ответ 1
Лучший способ - использовать директиву ng-options
для элемента select
.
контроллер
function Ctrl($scope) {
// sort options
$scope.products = [{
value: 'prod_1',
label: 'Product 1'
}, {
value: 'prod_2',
label: 'Product 2'
}];
}
HTML
<select ng-model="selected_product"
ng-options="product as product.label for product in products">
</select>
Это привяжет выбранный объект product
к свойству ng-model
- selected_product
. После этого вы можете использовать это:
<p>Ordered by: {{selected_product.label}}</p>
jsFiddle: http://jsfiddle.net/bmleite/2qfSB/
Ответ 2
Вместо ng-options="product as product.label for product in products">
в элементе select вы можете даже использовать это:
<option ng-repeat="product in products" value="{{product.label}}">{{product.label}}
который также отлично работает.
Ответ 3
Также вы можете сделать следующее:
<select class="form-control postType" ng-model="selectedProd">
<option ng-repeat="product in productList" value="{{product}}">{{product.name}}</option>
</select>
где будет выбран продукт "selectedProd".
Ответ 4
<div ng-controller="ExampleController">
<form name="myForm">
<label for="repeatSelect"> Repeat select: </label>
<select name="repeatSelect" id="repeatSelect" ng-model="data.model">
<option ng-repeat="option in data.availableOptions" value="{{option.id}}">{{option.name}}</option>
</select>
</form>
<hr>
<tt>model = {{data.model}}</tt><br/>
</div>
AngularJS:
angular.module('ngrepeatSelect', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.data = {
model: null,
availableOptions: [
{id: '1', name: 'Option A'},
{id: '2', name: 'Option B'},
{id: '3', name: 'Option C'}
]
};
}]);
взято из документации AngularJS