使用 ng-options 生成下拉列表时,如何设置所选选项?
While generating dropdownlist with ng-options, how to set the selected option?
这是插件demo
在 script.js
中,我创建了一个变量 info
来存储选项。所选选项应为 "Spanish" 因为
{
"name": "Spanish",
"value": 3082,
"selected": true //It's true here.
}
如何解决这个问题?
在您原来的 plunkr 中,您使用了 HTML 中的数据,而范围中的变量称为信息。使用 ng-repeat 而不是 ng-options 我让它像这样工作:
<div ng-controller="MyCntrl">
<select >
<option ng-repeat="option in info.value.lang" selected="option.selected">{{ option.name }}</option>
</select>
</div>
http://plnkr.co/edit/jp8g65LDtft1ZVvJe8nz
如果我正确解释了你的问题,这也能得到你想要的结果。
编辑:哦,顺便说一句,选择应该选择='selected'而不是布尔值。
您需要添加 ng-model
。根据您的 info.value.lang
,您可以将 selected : true
设置为模型值。
function MyCntrl($scope) {
$scope.info = info;
$scope.selectedItem = null;
angular.forEach(info.value.lang, function(lang) {
if (lang.selected === true){
$scope.selectedItem = lang.value;
}
});
}
<div ng-controller="MyCntrl">
<select ng-model="selectedItem" ng-options="option.value as option.name for option in info.value.lang" >
</select>
</div>
您在 js 和 html 中使用了不同的变量名。 ngOptions 需要有一个模型。要将西班牙语设置为默认设置,您必须执行以下操作。
<body>
<div ng-controller="MyCntrl">
<select ng-model="someModel" ng-init="someModel=3082" ng-options="option.value as option.name for option in info.value.lang">
</select>
</div>
</body>
此处 someModel 将具有从选项中选择的值。
您需要添加 ng-model
检查此 link 它现在正在工作..
plunker
这是插件demo
在 script.js
中,我创建了一个变量 info
来存储选项。所选选项应为 "Spanish" 因为
{
"name": "Spanish",
"value": 3082,
"selected": true //It's true here.
}
如何解决这个问题?
在您原来的 plunkr 中,您使用了 HTML 中的数据,而范围中的变量称为信息。使用 ng-repeat 而不是 ng-options 我让它像这样工作:
<div ng-controller="MyCntrl">
<select >
<option ng-repeat="option in info.value.lang" selected="option.selected">{{ option.name }}</option>
</select>
</div>
http://plnkr.co/edit/jp8g65LDtft1ZVvJe8nz
如果我正确解释了你的问题,这也能得到你想要的结果。
编辑:哦,顺便说一句,选择应该选择='selected'而不是布尔值。
您需要添加 ng-model
。根据您的 info.value.lang
,您可以将 selected : true
设置为模型值。
function MyCntrl($scope) {
$scope.info = info;
$scope.selectedItem = null;
angular.forEach(info.value.lang, function(lang) {
if (lang.selected === true){
$scope.selectedItem = lang.value;
}
});
}
<div ng-controller="MyCntrl">
<select ng-model="selectedItem" ng-options="option.value as option.name for option in info.value.lang" >
</select>
</div>
您在 js 和 html 中使用了不同的变量名。 ngOptions 需要有一个模型。要将西班牙语设置为默认设置,您必须执行以下操作。
<body>
<div ng-controller="MyCntrl">
<select ng-model="someModel" ng-init="someModel=3082" ng-options="option.value as option.name for option in info.value.lang">
</select>
</div>
</body>
此处 someModel 将具有从选项中选择的值。
您需要添加 ng-model
检查此 link 它现在正在工作..
plunker