RequireJS/Backbone.js アプリで HTML5 pushState に問題があります。何か間違ったことをしていると確信していますが、問題を特定できません。何時間も試しました。
序文: すべての RequireJS 依存関係は正しいフォルダーにあります。
ここに私の問題があります: 私は基本的な小さなセットアップを持っています - 私が使用している唯一のバックボーン コンポーネントはルーターです。デフォルトの '' ルートでは、ルーターの 'home' メソッドを呼び出します。このメソッドは、「テスト」を警告するだけで、機能します。
ただし、最上位ファイルに{pushState: true}
パラメーターとして追加すると、「ホーム」メソッドは呼び出されなくなります。Backbone.history.start()
app.js
これらは、それが起こっているコードのブロックです:
index.html:
<!doctype html>
<html>
<head>
<title>Todo</title>
<script data-main="assets/js/app/app.js" src="assets/js/app/lib/require.js"></script>
</head>
<body>
<div id="main"></div>
</body>
</html>
app.js:
require.config({
baseUrl: 'assets/js/app',
paths: {
'underscore': 'lib/underscore',
'jquery': 'lib/jquery',
'backbone': 'lib/backbone',
'text': 'lib/text',
'handlebars': 'lib/handlebars',
'router': 'router/router'
},
shim: {
'underscore': {
exports: '_'
},
'backbone': {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
}
}
});
require(['router', 'backbone'], function(Router, Backbone) {
var router = new Router();
Backbone.history.start({ pushState: true });
});
ルーター.js:
define(['backbone'], function(Backbone) {
var Router = Backbone.Router.extend({
routes: {
'': 'home'
},
home: function() {
alert('test');
}
});
return Router;
});
私は何を間違っていますか?これは間違った複雑なアプローチですか?