我把这个演示放在一起
http://demo.stg.brightonconsulting.net.au/templates/tests/backboneJQMProducts/
目前只有顶级链接'产品json pull'有效。如果你点击它就会被带到一个新页面(http://demo.stg.brightonconsulting.net.au/templates/tests/backboneJQMProducts/index.html#products/productList)
到此页面的路由工作正常,但是当您刷新页面时,它不显示该页面只显示空白页面? (它刷新正常 - 做一个cntr + f5,你会看到)
有没有人有这个/有没有人知道修复是什么?
我已尝试编辑此代码
define(['jquery','underscore', 'backbone','router'],
function($, _, Backbone,Router) {
var init=function(){
//create backbone router
//location.hash = '';
var router=new Router();
Backbone.history.start();
};
return{
initialize:init
}
});
基于recomendations。
我正在使用require.js将app放在一起,这是从main.js调用的,由require
实例化require.config({
paths: {
jquery: 'vendor/jqm/jquery_1.7_min',
jqm: 'vendor/jqm/jquery.mobile-1.1.0',
underscore: 'vendor/underscore/underscore_amd',
backbone: 'vendor/backbone/backbone_amd',
text: 'vendor/require/text',
plugin: 'plugin',
templates: '../templates',
views: '../views',
models: '../models'
}
});
define(['app','jqm-config'], function(app) {
$(document).ready(function() {
console.log("DOM IS READY");// Handler for .ready() called.
});
app.initialize();
});
感谢dan
答案 0 :(得分:6)
在使用RequireJS设置BackboneJS后,我刚刚遇到过类似的事情。
我在路由器代码中调用Backbone.history.start()
;为了解决这个问题,我把这个调用移到我在主require()
函数中实例化我的视图之后。
希望能有所帮助。
答案 1 :(得分:2)
根据您想要实现的行为,您可以做两件事:
在初始化路由之前重置哈希值。
location.hash = ''
var router=new Router();
Backbone.history.start();
初始化路由后,您可以导航到该哈希标记。
var router=new Router();
Backbone.history.start();
router.navigate(location.hash, true)