我正在使用 require.js 来加载我的模块,这通常可以正常工作。尽管如此,我还有两个额外的问题:
1) 如果你有一个类似于帮助类的模块并为现有原型定义了额外的方法(例如String.isNullOrEmpty
),你将如何包含它们?您希望避免使用对模块的引用。
2) 也需要更改才能使用 jQuery。我知道需要 jQuery,但我还需要传递$
吗?
谢谢!
我正在使用 require.js 来加载我的模块,这通常可以正常工作。尽管如此,我还有两个额外的问题:
1) 如果你有一个类似于帮助类的模块并为现有原型定义了额外的方法(例如String.isNullOrEmpty
),你将如何包含它们?您希望避免使用对模块的引用。
2) 也需要更改才能使用 jQuery。我知道需要 jQuery,但我还需要传递$
吗?
谢谢!
1) 如果你有一个类似于帮助类的模块并为现有原型定义了额外的方法(例如 String.isNullOrEmpty),你将如何包含它们?您希望避免使用对模块的引用。
如果您需要扩展原型,则不要返回值并将其用作您的最后一个参数require
:
// helpers/string.js
define(function() {
String.prototype.isNullOrEmpty = function() {
//
}
});
// main.js
require(['moduleA', 'helpers/string'], function(moduleA) {
});
2) 也需要更改才能使用 jQuery。我知道需要 jQuery,但我还需要传递 $ 吗?
jQuery 的唯一要求是您配置正确的路径
require.config({
paths: {
jquery: 'path/to/jquery'
}
});
require(['jquery', 'moduleB'], function($, moduleB) {
// Use $.whatever
});
在我看来,没有必要使用内置了 jQuery 的 RequireJS 版本,因为这主要是在 jQuery 不支持 AMD 时使用的。
现在它可以做到并且保持独立可以让你轻松地交换另一个库(想想 Zepto)。
2/ 对于 jquery,它真的很简单:
require(["jquery", "jquery.alpha", "jquery.beta"], function($) {
//the jquery.alpha.js and jquery.beta.js plugins have been loaded.
$(function() {
$('body').alpha().beta();
});
});
有关要求站点的更多信息:http ://requirejs.org/docs/jquery.html#get
1/ 在我的开发人员中进行此类扩展,我在没有 require 模块代码的全局文件中完成了它....并且我将它包含在我的应用程序中需要...不完美,但它工作正常
global.js
myglobalvar ="";
(...other global stuff...)
myapp.js
// Filename: app.js
define([
(...)
'metrix.globals'
], function(.....){
myApp = {
(...)