I'm trying to get a text value of an option list using AngularJS
我正在尝试使用AngularJS获取选项列表的文本值
Here is my code snippet
这是我的代码片段
<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}}
returns the value of the option, eg: prod_1. I'm trying to get the text value 'Product 1'. Is there a way to do this?
{{productList}}返回选项的值,例如:prod_1。我想要得到文本值Product 1。有办法吗?
4 个解决方案
#1
61
The best way is to use the ng-options
directive on the select
element.
最好的方法是在select元素上使用ng-options指令。
Controller
控制器
function Ctrl($scope) {
// sort options
$scope.products = [{
value: 'prod_1',
label: 'Product 1'
}, {
value: 'prod_2',
label: 'Product 2'
}];
}
HTML
HTML
<select ng-model="selected_product"
ng-options="product as product.label for product in products">
</select>
This will bind the selected product
object to the ng-model
property - selected_product
. After that you can use this:
这将把选中的product对象绑定到ng-model属性selected_product。之后你可以使用这个:
<p>Ordered by: {{selected_product.label}}</p>
jsFiddle: http://jsfiddle.net/bmleite/2qfSB/
jsFiddle:http://jsfiddle.net/bmleite/2qfSB/
#2
9
Instead of ng-options="product as product.label for product in products">
in the select element, you can even use this:
而不是ng-options=“product as product”。产品标签在“>在选择元素中,你甚至可以使用这个:
<option ng-repeat="product in products" value="{{product.label}}">{{product.label}}
which works just fine as well.
这也很有效。
#3
5
Also you can do like this:
你也可以这样做:
<select class="form-control postType" ng-model="selectedProd">
<option ng-repeat="product in productList" value="{{product}}">{{product.name}}</option>
</select>
where "selectedProd" will be selected product.
选择“selectedProd”的产品。
#4
0
<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:
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'}
]
};
}]);
taken from AngularJS docs
取自AngularJS文档
#1
61
The best way is to use the ng-options
directive on the select
element.
最好的方法是在select元素上使用ng-options指令。
Controller
控制器
function Ctrl($scope) {
// sort options
$scope.products = [{
value: 'prod_1',
label: 'Product 1'
}, {
value: 'prod_2',
label: 'Product 2'
}];
}
HTML
HTML
<select ng-model="selected_product"
ng-options="product as product.label for product in products">
</select>
This will bind the selected product
object to the ng-model
property - selected_product
. After that you can use this:
这将把选中的product对象绑定到ng-model属性selected_product。之后你可以使用这个:
<p>Ordered by: {{selected_product.label}}</p>
jsFiddle: http://jsfiddle.net/bmleite/2qfSB/
jsFiddle:http://jsfiddle.net/bmleite/2qfSB/
#2
9
Instead of ng-options="product as product.label for product in products">
in the select element, you can even use this:
而不是ng-options=“product as product”。产品标签在“>在选择元素中,你甚至可以使用这个:
<option ng-repeat="product in products" value="{{product.label}}">{{product.label}}
which works just fine as well.
这也很有效。
#3
5
Also you can do like this:
你也可以这样做:
<select class="form-control postType" ng-model="selectedProd">
<option ng-repeat="product in productList" value="{{product}}">{{product.name}}</option>
</select>
where "selectedProd" will be selected product.
选择“selectedProd”的产品。
#4
0
<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:
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'}
]
};
}]);
taken from AngularJS docs
取自AngularJS文档