2013-11-26 4 views
5

Я пытаюсь предварительно выбрать параметры в моем мультиселективе. Чтобы сделать мой вопрос ясным, я сделал JSFiddle.AngularJS: Параметры предварительного выбора при множественном выборе

<select ng-model="properties" id="props" multiple 
ng-options="option.name group by option.category for option in options"></select> 

К сожалению, я обязан тем, как объект получил, так что я думаю, мне нужно атрибут нг-опции.

Есть ли у кого-нибудь идеи, как я могу получить как «Капитан Америка», так и «Доктор» Doom 'выбран при загрузке?

ответ

2

Вы очень близко, два изменения. Определение атрибутов в контроллере, как этот

$scope.properties = ["Captain America", "Dr. Doom"]; 

И добавить небольшой кусочек ваших нг-варианты, как этого

ng-options="option.name as option.name group by option.category for option in options" 

Ваших неликвидный, как будет определять, что сохраненная функция выглядит в $ объеме .properties

+0

Вы также можете делать $ scope.properties = ["4", "9"] и использовать option.id как option.name –

3

Попробуйте изменить код контроллера для:

function TestCtrl($scope) { 

    var myOptions = [{ 
     "id": "4", 
     "name": "Captain America", 
     "categoryId": "1", 
     "category": "Heroes" 
    }, { 
     "id": "5", 
     "name": "Iron Man", 
     "categoryId": "1", 
     "category": "Heroes" 
    }, { 
     "id": "10", 
     "name": "Magneto", 
     "categoryId": "2", 
     "category": "Vilains" 
    }, { 
     "id": "9", 
     "name": "Dr. Doom", 
     "categoryId": "2", 
     "category": "Vilains" 
    }]; 

    $scope.options = myOptions; 


    $scope.properties = [myOptions[0], myOptions[3]]; 
} 

Объяснение: Вы устанавливаете выбранные параметры (свойства) для различных экземпляров объектов, чем те, которые составляют полный список. Используйте те же ссылки на объекты, что и выше.

+0

Да, я пробовал это решение - http://jsfiddle.net/k85M4/ – Eugene

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