【发布时间】: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