2016-06-03 3 views
1

Я хочу, чтобы выбрать select list (select2), когда пользователь нажимает кнопку html.Angularjs select2 set options selected

Мой HTML:
<select id="mySel2" class="form-control" multiple="multiple"> <option ng-repeat="item in items" ng-selected="item.selected" ng-model="item.tag">{{item.tag}}</option> </select> Угловая JS код функции на кнопку мыши:

var fruits=angular.module("myApp",[]); 
    fruits.controller('ctrlTags', function($scope){ 

    /* I HAVE SET DEFAULT VALUE TO SELECT LIST*/ 
    /* IT WORKING PERFECT WITH SHOWING SELECTED VALUES*/ 
    var tagsData = [ 
     {id:1,tag:'Apple'}, 
     {id:2,tag:'Banana'}, 
     {id:3,tag:'Cherry'}, 
     {id:4,tag:'Cantelope'}, 
     {id:5,tag:'Grapefruit'}, 
     {id:6,tag:'Grapes',selected:true}, 
     {id:7,tag:'Lemon'}, 
     {id:8,tag:'Lime'}, 
     {id:9,tag:'Melon',selected:true}, 
     {id:10,tag:'Orange'}, 
     {id:11,tag:'Strawberry'}, 
     {id:11,tag:'Watermelon'} 
    ]; 

    $scope.items = tagsData; 



/*NOW ON BUTTON CLICK GETKEY() FUNCTION WILL BE CALLED*/ 
/* AND I WANT TO RENDER/REFRESH SELECT LIST WITH NEW DATA */ 
$scope.getKey=function(data){ 
    var newData = [ 
     {id:4,tag:'car'}, 
     {id:5,tag:'bat',selected:true}, 
     {id:6,tag:'cat',selected:true}, 
     {id:7,tag:'Lemon'}, 
     {id:8,tag:'Lime'}, 

    ]; 
$scope.items=newData; 

}; 

});

/ВОПРОС: КНОПКА кликать ОБНОВЛЕНИЕ SELECT, список значений, НО НЕ ПОКАЗЫВАТЬ DEFAULT VALUES ОТДЕЛЬНЫЕ/ Пожалуйста, скажите мне КАК ОБНОВИТЬ SELECTED ЗНАЧЕНИЕ КАК ХОРОШО.

+0

'ng-model' не следует размещать на элементе' option', размещать его на 'select', также что имеют другое имя –

+0

код все еще работает правильно. но только с вопросом об установке выбранных значений из ng-click. – Shiri

ответ

1

Вам необходимо добавить модель, чтобы выбрать раздел ng-model = "selected". Вы можете добавить, например, первый индекс в контроллер $ scope.selected = tagsData [0]

+1

Работает на начальной нагрузке. Но не работает при нажатии кнопки. – Shiri

+0

http://jsfiddle.net/jLD42/310/ вот так? – john51