不能在AngularJS中使用ng-model和ng-repeat或ng-select在下拉菜单中选择默认值
Cannot select default value in dropdown using ng-model and ng-repeat or ng-select in AngularJS
我对AngularJS真的很陌生,我非常喜欢它。但是我遇到了一个问题,试图初始化一个特定值的预加载下拉菜单。
下拉菜单是用JSON数组中可用的值初始化的,但是当我尝试在这个下拉菜单中选择一个默认值时,我没有看到选择的值,但是ng-model变量设置正确。
我在这里创建了一个柱塞的例子http://plnkr.co/edit/7su3Etr1JNYEz324CMy7?p=preview试图实现我想要的,但我不能让它工作。我试过用n -repeat和n -select,但没有成功。我做的另一个尝试(在这个例子中)是试图设置ng-selected属性。
这是我的html
的一部分<body ng-controller="MySampleController">
<select name="repeatSelect" id="repeatSelect" ng-model="SelectedStatus" ng-init="SelectedStatus">
<option ng-repeat="option in StatusList[0]" value="{{option.key}}" ng-selected="{{option.key==SelectedStatus}}">{{option.name}}</option>
</select>
<select name="repeatSelect" id="repeatSelect" ng-model="SelectedOrigin">
<option ng-repeat="option in OriginList[0]" value="{{option.key}}" ng-selected="{{option.key == SelectedOrigin}}">{{option.key}} - {{option.name}}</option>
</select>
<pre>Selected Value For Status: {{SelectedStatus}}</pre>
<pre>{{StatusList[0]}}</pre>
<pre>Selected Value For Origin: {{SelectedOrigin}}</pre>
<pre>{{OriginList[0]}}</pre>
</body>
这是来自控制器的代码
function MySampleController($scope) {
$scope.StatusList = [];
$scope.OriginList = [];
$scope.ServiceCall = {};
$scope.EntityList = [];
$scope.SelectedStatus = -3;
$scope.SelectedOrigin = 1;
var myList = [
{
item: 'Status',
values: [{ key: -3, name: 'Aperto' },
{ key: -1, name: 'Chiuso' }]
},
{
item: 'Origin',
values: [{ key: 1, name: 'Origin1' },
{ key: 2, name: 'Origin2' },
{ key: 3, name: 'Origin3' }]
}
];
$scope.documentsData = myList;
angular.forEach($scope.documentsData, function (value) {
$scope.EntityList.push(value);
switch ($scope.EntityList[0].item) {
case 'Status':
$scope.StatusList.push($scope.EntityList[0].values);
$scope.EntityList = [];
break;
case 'Origin':
$scope.OriginList.push($scope.EntityList[0].values);
$scope.EntityList = [];
break;
}
});
}
任何帮助将不胜感激!
提前感谢。
您至少可以使用ng-options
而不是ng-repeat + option
,在这种情况下,默认值可以正常工作。
<select name="repeatSelect" id="repeatSelect"
ng-options="opt.key as opt.key+'-'+opt.name for opt in StatusList[0]"
ng-model="SelectedStatus"></select>`
你也可以通过将选项标签指定为作用域函数来使它更容易读。
HTML: ng-options="opt.key as getOptionLabel(opt) for opt in StatusList[0]"
控制器:
$scope.getOptionLabel = function(option) {
return option.key + " - " + option.name;
}
砰砰作响:http://plnkr.co/edit/7BcAuzX5JV7lCQh772oo?p=preview
没有使用ngOptions的select指令的值总是一个字符串。
设置如下,它将工作
$scope.SelectedStatus = '-3';
$scope.SelectedOrigin = '1';
详细阅读这里的答案ng-selected不能与ng-repeat一起设置默认值
相关文章:
- 如何将CSS(特别是填充/边距)应用于select下拉菜单的选项或optgroup
- 在CSS3中的Select Tag(下拉菜单)中向左填充
- AngularJs ng点击Bootstrap下拉菜单中的not working
- 我需要一个简单的javascript下拉菜单OnChange/Select
- Angularjs在按下ng repeat内的复选框时禁用下拉菜单
- angularjs的ng选项中的解析对象使用嵌套json选择下拉菜单
- 如何在Bootstrap select中的下拉菜单关闭时触发事件,并在Backbone.js中进行多选
- Angular JS下拉菜单使用ng点击和ng显示来显示动态内容
- Javascript CSS下拉菜单中的WebDriver Select Option在IDE中工作,而不是在代码中
- Angularjs的ng-grid下拉菜单不支持order by
- 无法在选择下拉菜单中使用动态生成下拉菜单ng-model设置默认选项
- 在angular js的select下拉菜单中访问枚举属性
- 在angular.js的select下拉菜单中绑定值和文本
- Angular-ui /ui-select下拉菜单
- 没有在angular的select下拉菜单中显示特定的资源
- Angularjs的ng-repeat下拉菜单从json嵌套
- 根据JS/Jquery中的其他下拉菜单更改FORM SELECT(下拉菜单)
- 不能在AngularJS中使用ng-model和ng-repeat或ng-select在下拉菜单中选择默认值
- 如何动态触发select下拉菜单
- 使用select下拉菜单使用ruby on rails参数更新link_to