0

我是 Angularjs 的新手......只是让这个工作很生气:

angular.module('app', ['ui.select2']).directive("selectCompany", function($timeout) {

    return {
        restrict: 'A',
        replace: true,
        template: '<input type="text" name="company_id" ng-model="companySelected" />',
        scope: {},

        link: function (scope, element, attrs, ctrl) {
            $timeout(element.select2({
                placeholder         : "Buscar empresa", minimumInputLength : 3, allowClear : true,
                ajax: {
                    url                 : 'http://' + window.location.host + '/ajax/module/company/load-companies',
                    dataType            : 'json',
                    type                : 'post',
                    quietMillis         : '250',
                    data                : function (term, page) { return { name: term }; },
                    results             : function (data, page) { return { results : data }; }
                },
                formatResult    : function(item) { return item.name; },
                formatSelection : function(item) { return item.name; },
                escapeMarkup    : function (m) { return m; },
            }));
        },
    };
});

这是我的 Angular 指令,它使 a<div select-company></div>成为一个 select2 控件。它目前有效,它还返回详细信息,但我收到此错误:

我的错误

任何的想法?

4

1 回答 1

1

通常,您希望在开发过程中使用非缩小版本的脚本,因为它们提供了更具描述性的堆栈跟踪......

很难说这里到底发生了什么,但试试:

$timeout(function () {
  element.select2({
    placeholder: "Buscar empresa",
    minimumInputLength: 3,
    allowClear: true,
    ajax: {
      url: 'http://' + window.location.host + '/ajax/module/company/load-companies',
      dataType: 'json',
      type: 'post',
      quietMillis: '250',
      data: function (term, page) {
        return {
          name: term
        };
      },
      results: function (data, page) {
        return {
          results: data
        };
      }
    },
    formatResult: function (item) {
      return item.name;
    },
    formatSelection: function (item) {
      return item.name;
    },
    escapeMarkup: function (m) {
      return m;
    },
  })
});
于 2013-07-09T12:20:21.807 回答