这是我对Require.js的第一次尝试,我正在试图弄清楚如何使用jQuery插件,特别是应该管理我的SPA的history.js。下面的代码位于main.js中,脚本运行但我无法想象如何实际使用History.pushState(),State.getState()和其他插件方法。我一直在控制台中收到"getState is not a function"
错误消息。
(function() {
requirejs.config(
{
baseUrl: 'js',
paths: {
'jquery': 'vendor/jquery-1.11.2.min',
'history': 'history.js'
},
shim: {
'history': {
deps: ["jquery"],
exports: 'History'
}
},
map: {
'*': { 'jquery': 'jquery-private' },
'jquery-private': { 'jquery': 'jquery' }
}
}
);
define(["jquery"], function($) {
$(function() {
require(['history'], function( History ){
var
History = window.History,
State = History.getState();
});
});
});
})();
jquery-private包含以下代码:
define(['jquery'], function (jq) {
return jq.noConflict( true );
});
这就是我所拥有的一切,因为我只想弄清楚并设置文件。我对exports: History
中的require(['history])
和函数参数有疑问,但它可能完全不同。
顺便说一下,我在以前的项目中使用了历史记录,所以我觉得我理解如何使用它,以防你可能想知道。 :)
编辑:我正在使用history.js文件的压缩/未压缩版本。添加路径并没有改变一件事。无论有没有,我都可以在需要时看到脚本在浏览器中加载。我仍然得到History.getState()不是函数错误。
感谢。
答案 0 :(得分:0)
您正在使用代码访问历史记录但未定义路径
require(['history'], function( History ){
你需要像jquery一样添加历史js文件的路径。
paths: {
'jquery': 'vendor/jquery-1.11.2.min',
'history' : '<path to js file>'
},
尝试将历史记录与jquery一起添加为依赖项
define(["jquery","history"], function($,History) {
var
History = window.History,
State = History.getState();
})();