AngularJS - Ng-repeat - Select2 JS - выпуск значения по умолчанию
Having trouble in setting up the default value for the drop down when AngularJS/ng-repeat/custom directive + Select2 JS is used.
1. I avoided using ng-options as the directive priority is 0.
2. I tried setting the priority for the custom directive 'select2Directive' to a number less than 1000, but still no luck.
Plunker @ http://plnkr.co/edit/Csy5FqDSQbErTm2fNPac. Ценю любую помощь. Благодарю.
1 ответ
Я заметил, что вы вызываете select2 с помощью небольшой директивы, но я нашел эту библиотеку с именем angular-select2, которую также легко реализовать.
вы можете установить значения по умолчанию с помощью ng-model/$scope, взгляните на этот план, чтобы получить представление
http://plnkr.co/edit/pFkY5f?p=preview
РЕДАКТИРОВАТЬ:
Я лучше попробую передать данные другим способом, похоже, что данные select2 и ваш ng-repeat не синхронизированы
Вы можете попробовать другой подход, например, создать директиву и вставить данные оттуда.
directive('select2Dynamic', function ($timeout) {
return {
restrict: 'A',
priority: 1,
scope: {
ngModel: "="
},
require: 'ngModel',
link: function (scope, element, attr) {
var select2Inst = element.select2();
select2Inst.select2({data:scope.$parent.$eval(attr.ngModel)});
select2Inst.select2('val',attr['select2Dynamic']);
}
}
});
<select select2-dynamic='2' ng-model='addresses' id="address" name="address" style="width:200px;" >
</select>
если вы хотите придерживаться своего подхода, вы можете установить значение и конец "события привязки модели"
посмотри на этот поршень
во всяком случае, я до сих пор настаиваю на том, что вы должны попробовать библиотеку angular-select2
надеюсь, это поможет