AngularJS - Ng-repeat - Select2 JS - 问题设置默认值

时间:2014-06-06 05:53:58

标签: angularjs-select2

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 个答案:

答案 0 :(得分:2)

我注意到你使用一个小指令调用select2,但我发现这个名为angular-select2的库也很容易实现。

你可以用你的ng-model / $ scope设置默认值,看看这个plunker来理解这个想法

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>

如果你想坚持你的方法,你会考虑设置“模型绑定事件”的值和结束

查看此plunker

无论如何,我仍然认为你应该尝试使用angular-select2库

希望有所帮助