これは初めてのRequire.jsの試みで、jQueryプラグインの使用方法、特にhistory.jsを使用してSPAを管理する方法を理解しようとしています。以下のコードはmain.jsにあり、スクリプトは実行されますが、実際にHistory.pushState()、State.getState()などのプラグインメソッドを実際に使用する方法を理解することはできません。 "getState is not a function"
エラーメッセージがコンソールに表示され続けます。require history.js plugin
(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のプライベートには、このコードが含まれています
私は私だけのものを把握しようとしているとして、これまでに得たとの文書を設定したすべてのものだdefine(['jquery'], function (jq) {
return jq.noConflict(true);
});
。私はexports: History
と機能パラームについて疑問を持っていますが、それはrequire(['history])
ですが、完全に別のものかもしれません。
ところで、私は以前のプロジェクトで履歴を使用していましたので、あなたが疑問に思っているかもしれないので、使用方法を理解しているように感じます。 :)
編集:history.jsファイルの圧縮/非圧縮バージョンを使用しています。パスを追加しても何も変わりませんでした。それがあってもなくても、必要に応じてブラウザに読み込まれたスクリプトを見ることができます。私はまだHistory.getState()関数エラーではありません取得します。
ありがとうございました。
私はあなたが 'history'のための' paths'の設定を持っていない驚いているようにjQueryと一緒に歴史を追加
してみてください。どのファイルを複数のファイルに配布していますか?私は[ここ](https://github.com/browserstate/history.js/tree/master/scripts)を見ると、たくさんのサブディレクトリを見ることができます。また、 'History.getState()'を呼び出す直前に 'window.History'を調べるとどうなりますか? – Louis
私は圧縮されたhistory.jsファイルを使用しています。私は元の投稿をその情報で編集しました。私がHistory.getState()を呼び出す前に検査すればHistory関数が得られます。 [link](https://i.imgsafe.org/3f009d92d4.jpg) – skrunic