我正在使用require.js加载通常工作正常的我的模块。尽管如此,我还有两个额外的问题:使用require.js加载原型增强
1)如果您有一个模块类似辅助类,并为现有原型定义了其他方法(如String.isNullOrEmpty
),那么如何包含它们?您希望避免使用对模块的引用。
2)需要更改以使用jQuery。我明白,需要jQuery需要,但我也需要通过$
?
谢谢!
我正在使用require.js加载通常工作正常的我的模块。尽管如此,我还有两个额外的问题:使用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
});
在我看来这是不需要使用the version of RequireJS that has jQuery built into it,因为这主要是使用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在我的开发者对于这样的扩展我做到了,在没有需要的模块代码全局文件/。 ...我包括在我的要求......不完美的应用程序,但它的做工精细
global.js
个myglobalvar ="";
(...other global stuff...)
myapp.js
// Filename: app.js
define([
(...)
'metrix.globals'
], function(.....){
myApp = {
(...)
嗨让迈克尔,让我们假设我想将我的html文件分成三个不同的文件:1为html,1为jquery(事件处理),1为javascript部分。你会推荐这个吗? – AntonSack 2013-03-25 13:46:39
如果你只有3个文件(每个文件中的一个),我认为这将是有效的,而不是必需的做事的最佳方式,但“有效的方式”;) – 2013-04-09 07:20:38