2012-11-14 178 views
1

工作,我已經把這個演示一起幹線路由不刷新

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

目前唯一的頂部鏈接的產品JSON拉「的作品。如果您點擊,您將被帶到新頁面(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把應用程序一起,這是從一個被實例化的main.js稱爲需要

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(); 
}); 

感謝丹

+0

我無法重現我的鉻合金上的錯誤。 –

+0

發生在我的ff上,更重要的是發生在我的手機上。手段可以將人發送到一個沒用的直接鏈接...可能是因爲我使用require.js和定義方法的方式嗎? – Dan

+0

你有沒有得到任何解決方案。我也面臨同樣的問題。下面的答案都沒有幫助我。請回復 – sSaroj

回答

2

你可以做兩件事情,這取決於您想實現的行爲:

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

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

初始化路由後,您可以導航到該哈希標記。

var router=new Router(); 
Backbone.history.start(); 
router.navigate(location.hash, true) 
+0

嗨,感謝這.. 如果我嘗試這兩個它不顯示空白頁,但確實重新路線我到我的應用程序的開始... 我真的希望它留在我的網頁上。 。 – Dan

+0

@sebastian https://stackoverflow.com/questions/38320519/backbone-route-with-push-state-not-working-on-page-refresh你能幫我解決這個問題嗎? – vini

6

我在使用RequireJS設置BackboneJS後遇到了類似的情況。

我從路由器代碼裏面撥打Backbone.history.start();爲了解決這個問題,我將此調用移到了我的主要require()函數中實例化視圖之後。

希望能幫助別人。