我正在开发Backbone应用程序。我有以下app文件:
// src/app.js
var AppRouter = require('./router');
var App = new AppRouter();
它链接到索引页面(链接有效,我已经验证过):
<!DOCTYPE html>
<html>
<head>
<title>Feedback Dev Test</title>
</head>
<body>
<script type="text/javascript" src="assets/js/app.js"></script>
</body>
</html>
这是路由器本身:
var Backbone = require('backbone');
var $ = require('jquery/dist/jquery');
var IndexView = require('./views/index');
Backbone.$ = $;
var AppRouter = Backbone.Router.extend({
routes: {
'': 'routeIndex',
'hello': 'hello'
},
routeIndex: function() {
if (!this.indexView) {
console.log('routeIndex called');
this.indexView = new IndexView();
}
},
hello: function() {
alert('HELLO');
}
});
module.exports = AppRouter;
当我导航到页面索引时,不会发生routeIndex事件(没有任何内容记录到控制台)。此外,当我导航到/hello
时,警报也不会弹出。我做错了什么?
答案 0 :(得分:0)
在页面加载期间,在应用程序完成所有路由器的创建后,请务必调用Backbone.history.start()或Backbone.history.start({pushState:true})来路由初始URL。 / p>