如何使用RequireJS检查适当的页面并相应地加载脚本
在我的网站中,我有很多JavaScript文件,所有这些文件都有不同的用途,但是登录页面只需要如何使用RequireJS检查适当的页面并相应地加载脚本,requirejs,Requirejs,在我的网站中,我有很多JavaScript文件,所有这些文件都有不同的用途,但是登录页面只需要jquery和loginValidate文件。当我附加我的main.js时,假设通过检查条件只加载这两个文件。怎么做 我的配置文件: requirejs.config({ baseUrl:"scripts", paths:{ //libraries jquery :"lib/jquery-1.9.0.min", jquer
jquery
和loginValidate
文件。当我附加我的main.js
时,假设通过检查条件只加载这两个文件。怎么做
我的配置文件:
requirejs.config({
baseUrl:"scripts",
paths:{
//libraries
jquery :"lib/jquery-1.9.0.min",
jqueryUI :"lib/jquery-ui-1.9.2.custom.min",
underScore :"lib/underscore-min",
backBone :"lib/backbone-min",
//scripts
appInit :"js/tasklist",
loginValidate :"js/loginValidate"
},
shim:{
"underScore":{
exports: "_"
},
"backBone":{
exports:"Backbone",
deps:["underScore"]
},
"appInit" : {
deps:["jquery","jqueryUI","underScore","backBone"]
},
"jqueryUI":{
deps:["jquery"]
},
"loginValidate":{
deps:['jquery']
}
}
});
仅在登录页面上需要:
require(["jquery","loginValidate"], function($,validate){
how can i call the loginValidate function?
});
loginValidate
功能:
define(function(){
var tasklistHandler = function (params) {
//params take care.. to validate
};
$(function(){ // calling internally the function
var paramsLoginForm = {
loginForm : $('#tlLoginForm')
}
tasklistHandler(paramsLoginForm);
});
})
require(["jquery","loginValidate"], function($, validate){
var paramsLoginForm = {
loginForm : $('#tlLoginForm')
}
// \|/ that is what is returned by `define`'s callback function.
validate(paramsLoginForm);
});
这是正确的方法吗?我也在使用Backbone.js来使用其他页面;我如何处理这些页面 您遇到的问题是“factory”函数(在最后一个代码段中传递给define调用的回调函数)中缺少“return” 相反,你需要有这样的东西:
define(function(){
return function (params) {
//params take care.. to validate
};
})
在require
调用中,您可以使用运行工厂函数返回给您的函数:
define(function(){
var tasklistHandler = function (params) {
//params take care.. to validate
};
$(function(){ // calling internally the function
var paramsLoginForm = {
loginForm : $('#tlLoginForm')
}
tasklistHandler(paramsLoginForm);
});
})
require(["jquery","loginValidate"], function($, validate){
var paramsLoginForm = {
loginForm : $('#tlLoginForm')
}
// \|/ that is what is returned by `define`'s callback function.
validate(paramsLoginForm);
});
如果您想为不同的页面加载不同的模块,那么这个答案可能会有所帮助-