我的问题很简单。
我启动/ app,当我点击某个按钮时,我会触发/报告 Backbone.history.navigate(' report',{trigger:true,replace:true});
然后我在/报告页面。没问题。
我在/ report上有相同的按钮,我想触发路由器路由"报告"当我点击它。它似乎无法正常工作,因为我已经在被询问的页面上。
知道我该怎么办?
非常感谢
答案 0 :(得分:1)
Backbone.history.navigate('report',{trigger: true, replace: true});
您不应该使用它来呈现/重新加载您的应用程序视图。不建议这样做。
相反,你应该有一个扩展Backbone.Events
为路线定义回调" / report"如下:
var MyAppBus = _.extend({},Backbone.Events);
MyAppBus.on("report",function(payLoad){
// 1.Load the data
// 2.Create an instance of the view passing the loaded data.
// (In your case, you could also pass an instance of the view in the payload
// and update the data alone in the view instance.)
// 3.Render the view.
// 4.Call the router navigate function with trigger set to false to
// update the url on a need basis.
});
现在,在event/router callback
你可以这样做:
MyAppBus.trigger("report",payLoad);
事件回调中的payLoad可以是:
var payLoad = {};
payLoad.view = viewInstance;