【问题标题】:Can I use angular-selectize with require.js?我可以在 require.js 中使用 angular-selectize 吗?
【发布时间】:2015-08-23 08:52:30
【问题描述】:

angular-selectize.js 需要 selectize.js 和 angular.js 才能运行。当我通过 require 加载它们时,没有 window.Selectize 属性被暴露,这是 angular-selectize.js 所需要的。

这是一个来自 selectize.js 的 sn-p

if (typeof define === 'function' && define.amd) {
        define('selectize', ['jquery','sifter','microplugin'], factory);
    } else if (typeof exports === 'object') {
        module.exports = factory(require('jquery'), require('sifter'), require('microplugin'));
    } else {
        root.Selectize = factory(root.jQuery, root.Sifter, root.MicroPlugin);
    }

还有一个来自 angular-selectize 的 sn-p

 link: function(scope, element, attrs, modelCtrl) {

  Selectize.defaults.maxItems = null; //default to tag editor

  var selectize,
      config = angular.extend({}, Selectize.defaults, selectizeConfig, scope.config);
    ........


}

需要暴露 Selectize 属性,因为它不可用,因为 selectize 进入了

if (typeof define === 'function' && define.amd) 

,全局未创建,出错

那么,通过 require 使用 angular-selectize 的正确方法是什么?

【问题讨论】:

  • 不幸的是,没有通过 require 使用 angular-selectize 的正确方法。另外,让我们清楚的是那里有几个不同的角度选择库。你正在谈论的那个——也是最受欢迎的一个——是 github 人machineboy2045。尽管 Selectize 库本身与 AMD 兼容,但从事 angular-selectize 工作的人并不关心 AMD 或 CommonJS。所以 Selectize.defaults.maxItems 在那个时间点已经可供他们使用,因为他们已经通过脚本标签全局加载了它。

标签: jquery angularjs angularjs-directive requirejs selectize.js


【解决方案1】:

我遇到了同样的问题并通过将Selectize 添加到window 来解决。

(function (define) {
    'use strict';
    var dependencies = [
        'selectize',
        'angular',
        'ngMessages',
        'ngSelectize',
        'ngLoad'
    ];
    define(dependencies, function (Selectize) {

      window.Selectize = Selectize; 
      ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 2021-03-24
    • 1970-01-01
    • 2017-12-22
    • 2018-07-08
    • 1970-01-01
    相关资源
    最近更新 更多