1

我已经把这个演示放在一起

http://demo.stg.brightonconsulting.net.au/templates/tests/backboneJQMProducts/

目前只有顶部链接“products 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
}
});

基于建议。

我正在使用 require.js 将应用程序放在一起,这是从 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();
});

谢谢丹

4

2 回答 2

6

在使用 RequireJS 设置 BackboneJS 后,我刚刚遇到了类似的情况。

Backbone.history.start()我是从我的路由器代码中调用的;为了解决这个问题,我将这个调用移到了在我的主require()函数中实例化我的视图之后。

希望对某人有所帮助。

于 2013-05-19T14:16:42.607 回答
2

根据您想要实现的行为,您可以做两件事:

在初始化路由之前重置哈希。

location.hash = ''
var router=new Router();
Backbone.history.start();

初始化路由后,您可以导航到该哈希标记。

var router=new Router();
Backbone.history.start();
router.navigate(location.hash, true)
于 2012-11-14T20:19:58.340 回答