【发布时间】:2017-02-23 16:51:46
【问题描述】:
这是我对 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() is not a function 错误。
谢谢。
【问题讨论】:
标签: javascript jquery requirejs history.js