[英]Backbone.js trigger function each time Router is used
只是想知道是否有一種簡單的方法可以在每次使用Backbone.js路由器時觸發自定義功能,而不必將其添加到每個路由器功能中。 現在我的腳本如下所示:
var AppRouter = Backbone.Router.extend({
routes: {
'' : 'index',
'test': 'test',
},
initialize: function() {
},
index: function() {
customFunction();
indexView.render();
},
test: function() {
customFunction();
testView.render();
},
});
我想要這樣的東西:
var AppRouter = Backbone.Router.extend({
routes: {
'' : 'index',
'test': 'test',
},
initialize: function() {
},
index: function() {
indexView.render();
},
test: function() {
testView.render();
},
change: function() {
customFunction();
}
});
有沒有人有什么建議?
每當Router
匹配Router
,都會使用匹配的route:[name]
觸發route:[name]
事件,以允許類偵聽某些路由匹配。 所有主干對象還支持在事件發生時觸發的all
事件。
因此,您可以利用此綁定到Router
上的all
事件,只要路由器執行某些路由,該事件就會觸發。
initialize: function() {
this.bind( "all", this.change )
},
如果您對匹配的路由感興趣,則將其作為第一個參數傳遞給綁定函數。
常見問題解答中的更多詳細信息
編寫綁定的另一種(新的)主干方式是:
initialize: function() {
this.listenTo(this, "all", this.change )
},
一個更好聽會只是route
,如果你問我。 因為all
事件all
觸發兩個事件,所以我認為這些是:
“ route:[name]” (參數)-匹配特定路由時由路由器觸發。
“ route” (路由,參數)-匹配任何路由時由路由器觸發。
我剛接觸骨干。 在Laurens回答之后,我設法通過以下方法調用每個路線更改
app_router.on('route', function(e){
console.log(e);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.