AngularJS ng-model绑定在jquery-select2(版本4. *)输入字段上

时间:2017-12-22 12:08:45

标签: angularjs ui-select2

我在我网站的很多地方使用jquery-select2插件。现在我需要将angularjs模型绑定添加到现有表单。我找到的最佳解决方案是angularjs wrapper ui-select2。但是这个包装器确实适用于jquery-select2版本4. *(它适用于旧的version 3.*,但是有一些错误) 这是我的Plunker

的index.html

<!DOCTYPE html>
<html ng-app="MyApp">    
<head>    
  <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/css/select2.min.css" />    
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.5/js/select2.full.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.7/angular.min.js"></script>
  <script src="select2.js"></script>
  <script src="script.js"></script>
</head>

<body ng-controller="MyController">
  <h1>Select2</h1>

  <code>myModel1: {{myModel1 | json}}</code>
  <select ui-select2="select2Options" ng-model="myModel1" style="width:100%" ng-focus="focus()">
  </select>    
  <br>
  <br>    
  <code>myModel2: {{myModel2 | json}}</code>
  <select ui-select2="select2Options" ng-model="myModel2" style="width:100%" ng-focus="focus()" multiple>
  </select>
</body>

</html>

的script.js

var myAppModule = angular.module('MyApp', ['ui.select2']);

myAppModule.controller('MyController', function($scope) {
    $scope.focus = function() {
      console.log('focus event');
    };

    $scope.select2Options = {
      allowClear: true,
      ajax: {
        url: "data.json",
        data: function (term, page) {
          return {}; 
        },
        processResults: function (data, page) { 
          return {results: data}
        }
      }
    }
});

如何让ng-model工作?
如何使重点工作? 如何从服务器初始化具有定义值的select2?

我知道ui-select2已被弃用,但ui-select(原生角度)不合适。

P.S。我不知道为什么,但如果属性&#34;倍数&#34;已定义 - 查看Plunker。但也存在缺陷 例如:如果我点击&#34;清除&#34;,生成错误
&#34;未捕获的TypeError:无法读取属性&#39; id&#39;未定义&#34;

0 个答案:

没有答案