使用angularjs的bootstrap-tagsinput中的未定义方法

时间:2013-11-27 08:55:40

标签: angularjs twitter-bootstrap

我正在尝试使用页面中描述的方法在angularjs app中实现http://timschlechter.github.io/bootstrap-tagsinput/examples/ jquery插件。

我已经包含了这两个文件:

<script type="text/javascript" src="/viktor/public/js/tagsinput.js"></script>
<script type="text/javascript" src="/viktor/public/js/ng-tagsinput.js"></script> // I have renamed those files.

在我的app mudule load中添加了以下内容:

angular.module('app', ['ngTouch', 'bootstrap-tagsinput'])

最后添加了示例中定义的指令:

<input type="text" class="form-control" bootstrap-tagsinput>

但是我收到以下错误:

错误:[$ compile:nonassign] http://errors.angularjs.org/1.2.2/ $ compile / nonassign?p0 = undefined&amp; p1 = bootstrapTagsinput     在错误()     在http://code.angularjs.org/1.2.2/angular.min.js:6:449     在k(http://code.angularjs.org/1.2.2/angular.min.js:48:254)     在对象。 (http://code.angularjs.org/1.2.2/angular.min.js:48:353)     at g。$ digest(http://code.angularjs.org/1.2.2/angular.min.js:99:14)     at g。$ apply(http://code.angularjs.org/1.2.2/angular.min.js:101:369)     at g(http://code.angularjs.org/1.2.2/angular.min.js:67:241)     在w(http://code.angularjs.org/1.2.2/angular.min.js:71:181)     在XMLHttpRequest.H.onreadystatechange(http://code.angularjs.org/1.2.2/angular.min.js:72:222)angular.js:9159 TypeError:无法调用undefined的方法'filter'     at Object.fn(tagsinput.js:68:35)     at g。$ digest(http://code.angularjs.org/1.2.2/angular.min.js:99:141)     at g。$ apply(http://code.angularjs.org/1.2.2/angular.min.js:101:369)     at g(http://code.angularjs.org/1.2.2/angular.min.js:67:241)     在w(http://code.angularjs.org/1.2.2/angular.min.js:71:181)     在XMLHttpRequest.H.onreadystatechange(http://code.angularjs.org/1.2.2/angular.min.js:72:222

似乎在这一行

var added = scope.model.filter(function(i) {return prev.indexOf(i) === -1;}), there is no method filter.

有人有同样的问题吗?

1 个答案:

答案 0 :(得分:2)

有一个代码如何在页面上使用它。

<bootstrap-tagsinput
    ng-model="cities"
    typeahead-source="queryCities"
    tagclass="getTagClass"
    itemvalue="value"
    itemtext="text">
</bootstrap-tagsinput>

<script>
    angular.module('AngularExample', ['bootstrap-tagsinput'])
    .controller('CityTagsInputController',
      function CityTagsInputController($scope) {
          // Init with some cities
          $scope.cities = [
            { "value": 1, "text": "Amsterdam", "continent": "Europe" },
            { "value": 4, "text": "Washington", "continent": "America" },
            { "value": 7, "text": "Sydney", "continent": "Australia" },
            { "value": 10, "text": "Beijing", "continent": "Asia" },
            { "value": 13, "text": "Cairo", "continent": "Africa" }
          ];

          $scope.queryCities = function (query) {
              return $http.get('cities.json');
          };

          $scope.getTagClass = function (city) {
              switch (city.continent) {
                  case 'Europe': return 'badge badge-info';
                  case 'America': return 'label label-important';
                  case 'Australia': return 'badge badge-success';
                  case 'Africa': return 'label label-inverse';
                  case 'Asia': return 'badge badge-warning';
              }
          };
      }
    );
</script>