Javascript 主干路由未第一次触发
我已经开始学习Backbone.js。我已经为3个链接设置了一个简单的路由器。其中两个完全触发了路由,但有一个-下面代码中带有Javascript 主干路由未第一次触发,javascript,backbone.js,Javascript,Backbone.js,我已经开始学习Backbone.js。我已经为3个链接设置了一个简单的路由器。其中两个完全触发了路由,但有一个-下面代码中带有href=“#/active”的一个,在我先单击其他两个链接中的一个之前不会触发路由 Html是: Javascript: var Workspace = Backbone.Router.extend({ routes: { '*filter': 'setFilter' }, initialize: functi
href=“#/active”
的一个,在我先单击其他两个链接中的一个之前不会触发路由
Html是:
-
-
-
Javascript:
var Workspace = Backbone.Router.extend({
routes: {
'*filter': 'setFilter'
},
initialize: function() {
this.on('route:setFilter', this.setFilt);
},
setFilt: function(param) {
app.TodoFilter = param || '';
app.Todos.trigger('filter');
}
});
app.TodoRouter = new Workspace();
Backbone.history.start();
路由器不是那样工作的,试试这种方式 路线:{
'filter': 'setFilter',
'active': 'activeRoter',
'completed':'completedRouter'
},
setFilter: function(){
//Do something
},
activeRoter: function(){
//Do something
},
completedRouter: function(){
//Do something
}
非常感谢,我使用的路由使用splat声明包含一个参数的默认路由-参数名为
filter
,它作为setFilt(param)中的param
参数传递
。我发现问题不在于我的路由本身。当我首先加载应用程序时,所有路由都可以正常工作。问题在于当我刷新页面时,我使用的是一个路由,例如urlhttp://localhost:5000/todo.html#/active
。setFilt
函数在页面完全呈现之前被调用。然后我再次单击活动链接,发现我已经在正确的路线上,因此不会触发setFilt
功能。我需要更多了解如何解决此问题,但这是一个教程,我正在这样做,我现在将继续。感谢您的帮助..活动的路线定义在哪里?