4
我的代碼試圖跟蹤Backbone js應用程序中的當前片段。Backbone.History.fragment在路由器事件回調中未定義
$(function(){
Backbone.history.start({pushState: true});
console.log("fragment " + Backbone.history.fragment);
// Beef is a global that holds my router (created elsewhere)
Beef.router.bind("all", function(route) {
console.log("fragment from event handler " + Backbone.history.fragment);
});
});
此代碼按預期打印'fragment xxx',但在應用程序中導航時始終打印'來自事件處理程序undefined'的片段。
如果我複製到Backbone.History本地VAR第一它的工作原理:
$(function(){
Backbone.history.start({pushState: true});
console.log("fragment " + Backbone.history.fragment);
var hist = Backbone.history;
Beef.router.bind("all", function(route) {
console.log("fragment from event handler " + hist.fragment);
});
});
有人能解釋什麼怎麼回事?
我剛剛在我正在處理的應用程序中嘗試了這一點,第一個示例工作正常(即正確返回片段)。你能爲此創建一個jsfiddle以確保它不是特定於配置的問題嗎? –
Ack。我會盡力將其抽取成小樣本。希望我只是做一些小事。 –