如何将默认值设置为多选下拉列表

时间:2017-01-26 20:34:28

标签: angularjs

我有一个带有属性的模型(param):

  • param.ValidValues(键值对数组)
  • param.DefaultValues(值字符串数组)

我正在渲染多选下拉列表

<select multiple ng-model="param.DefaultValues">
    <option ng-repeat="item in param.ValidValues" value="{{item.Value}}" label="{{item.Key}}" 
        ng-selected="???">
    </option>
</select>

问题: 我如何(使用AngularJS标记语法)在此下拉列表中设置默认值预选选项匹配param.DefaultValues中的任何内容)?使用ng-selected还是有其他选择?

例如:

如果ValidValues = [“one”,“two”,“three”,“four”] 和DefaultValues = [“两个”,“三个”]

然后应该预先选择“两个”,“三个”。有意义吗?

请注意,我无法修改param.ValidValues集合。

2 个答案:

答案 0 :(得分:2)

<div ng-controller="myCtrl as $ctrl">    
  <select multiple ng-model="$ctrl.selectedValues"
    ng-options="o.value as o.title for o in $ctrl.languages">
    <option value=""></option>
  </select>
  <br>
  {{$ctrl.selectedValues}}
</div>

app.js文件

var app = angular.module('app', []);
app.controller('myCtrl', function ($scope) {
this.languages = [
  {value: 'C#', title : 'C Sharp'},
  {value: 'PHP', title : 'p h p'},
  {value: 'Go', title : 'Go javascript'},
  {value: 'ES6', title: 'javascript'},
  {value: 'R', title: 'Rust'}
]   

this.selectedValues = ["C#","Go","R"];
});

答案 1 :(得分:0)

试试这个 stackoverflow.com

<select multiple ng-model="param.DefaultValues" ng-init="param.DefaultValues = item[0]">
<option ng-repeat="item in param.ValidValues" value="{{item.Value}}"    label="{{item.Key}}" 
    ng-selected="???">
</option>
</select>