我想在dropdown(select)值中传递数组值,但它总是在下拉值中显示数组键。
我正在尝试下面给出的代码
$databases = array(
'db1','db2','db3','db4','db5',
);
角色代码
<select ng-model="databases" ng-change="showTables($index)" ng-options="key as value for (key,value) in databases" >
<option value="">-- choose Database --</option>
答案 0 :(得分:0)
ng-options
就像这样构建:
ng-options="key as value for (key,value) in databases"
在in
之后,您有列表。在for
和in
之间,它将用于单个select
。
然后你有2个其他属性。这是关键和价值。值是您要在列表中打印的内容,即用户可见的内容。密钥是将作为“值”放在DOM中的数据。
您希望在数值中设置数组属性。因为这里有简单的数据,并且列表中可见的内容与DOM值中的内容之间没有任何区别,您可以这样做:
ng-options="value for value in databases"
此外,我还注意到您在databases
上使用了变量ng-model
。这不是一个好主意,当您选择一个值时,这将删除您的列表。你必须使用其他var。
答案 1 :(得分:0)
如果数组仅包含String
,则只需使用ng-repeat:
<强> HTML 强>:
<div ng-controller="DatabaseSelectExampleController as vm">
<select ng-model="vm.selectedDatabase">
<option ng-repeat="actDatabase in vm.databases" value="{{actDatabase}}">
{{actDatabase}}
</option>
</select>
</div>
<强> JS 强>:
angular.module('yourApp')
.controller('DatabaseSelectExampleController', function(){
this.databases = ['database one', 'someother db', 'a db aswell'];
this.selectedDatabase = this.databases[0];
});