我有一个<select>
输入和绑定与AngluarJS的问题。我在Plunker上创建了一个最低工作示例:http://plnkr.co/edit/P4T25RoJrU4mvbBiUJ9S?p=preview。与AngularJS和选择绑定的问题不加载默认值
基本问题如下:下拉菜单中的值不会从我的模型中预选。
此外,在Angular 1.1.5中,ng-options
似乎在生成的<option>
标签中不包含“标签”,因此当您更改选择时,下拉控件不会记录任何更改。
我有一个<select>
输入和绑定与AngluarJS的问题。我在Plunker上创建了一个最低工作示例:http://plnkr.co/edit/P4T25RoJrU4mvbBiUJ9S?p=preview。与AngularJS和选择绑定的问题不加载默认值
基本问题如下:下拉菜单中的值不会从我的模型中预选。
此外,在Angular 1.1.5中,ng-options
似乎在生成的<option>
标签中不包含“标签”,因此当您更改选择时,下拉控件不会记录任何更改。
两个问题:
select as
和track by
时要小心。JS
angular.module('defaultValueSelect', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.data = {
availableOptions: [
{id: '1', name: 'Option A'},
{id: '2', name: 'Option B'},
{id: '3', name: 'Option C'}
],
//USE this
selectedOption: '2'
//NOT this
//selectedOption: 2 //This sets the default value
};
}]);
HTML
<!-- remove 'track by option.id' -->
<select name="mySelect" id="mySelect"
ng-options="option.id as option.name for option
in data.availableOptions track by option.id"
ng-model="data.selectedOption">
</select>
从文档:
在同一个表达式中使用
select as
和track by
时要小心。这将工作:
<select ng-options="item as item.label for item in items track by item.id" ng-model="selected"> </select>
,但是这是行不通的:
<select ng-options="item.subItem as item.label for item in items track by item.id" ng-model="selected"> </select>
按照要求通过OP,将作为答案的评论。
如果您从ng选项中删除“track by option.id”如下,它应该根据您的模型进行预先选择。
<select name="mySelect" id="mySelect"
ng-options="option.id as option.name for option in data.availableOptions"
ng-model="data.selectedOption"></select>
退房修改Plunker:http://plnkr.co/edit/b4ddyA5Q4jGNcJI1d8eW?p=preview
如果“通过option.id轨道”,从NG选项去掉,应该预先选择基于模型。我有修改Plunker:http://plnkr.co/edit/b4ddyA5Q4jGNcJI1d8eW?p=preview –
是的,我试过了,我什么也没有... – TomSlick
@VivekN这似乎已经解决了我的问题。非常感谢你。发布这个答案,我可以接受它。 – Nate