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

надеюсь, это поможет

Другие вопросы по тегам