2017-01-26 3 views
0

У меня есть модель (парам) со свойствами:Как установить значения по умолчанию для множественного выбора выпадающего меню

  • 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) установить значения по умолчанию в этом выпадающем меню (), чтобы выбрать параметры, которые соответствуют всем параметрам.DefaultValues ​​) ?? Использовать ng-selected или есть другой вариант?

Например:

, если ValidValues ​​= [ "один", "два", "три", "четыре"] и DefaultValues ​​= [ "два", "три"]

затем " два "," три "должны быть предварительно выбраны. Имеет смысл?

Обратите внимание, что я не могу изменить param.ValidValues.

+1

На контроллере вы должны сохранить значение внутри выберите в 'ngModel' -' $ scope.param.DefaultValues = ['firstDefaultItemValue', 'secondDefaultItemValue']; ' –

+0

@Alon Eitan, извините, не получилось. DefaultValues, используемые для инициализации элемента управления, но также используемые в качестве модели для выбора пользователя – monstro

ответ

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"]; 
}); 
+0

У меня уже есть: ng-model = "param.DefaultValues" – monstro

+0

Проверьте это [ссылка в jsfiddle] (https://jsfiddle.net/yurydg/pgt9tqg2/) – YuryDG

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> 
+0

Но они спрашивают о нескольких вариантах, а не о одном –

+0

Sory, моя ошибка. Я не вижу этого, когда читаю. – ambussh

Смежные вопросы