Javascript Backbone.js路由器回调在除1个特定URL段以外的所有URL段上启动
我正在创建第一个使用Backbonejs路由器的应用程序 我很好奇,是否有可能定义一个路由,除了一个url段之外,它将为每个url段触发 在我的例子中,如果url是Javascript Backbone.js路由器回调在除1个特定URL段以外的所有URL段上启动,javascript,backbone.js,url-routing,pushstate,Javascript,Backbone.js,Url Routing,Pushstate,我正在创建第一个使用Backbonejs路由器的应用程序 我很好奇,是否有可能定义一个路由,除了一个url段之外,它将为每个url段触发 在我的例子中,如果url是http://www.example.com/login,但我确实希望它为 等等 我的路由器如下所示: var SuiteRouter = Backbone.Router.extend({ // ################################ Defined Routes ############
http://www.example.com/login
,但我确实希望它为
- 等等
var SuiteRouter = Backbone.Router.extend({
// ################################ Defined Routes ################################
routes: {
"": "landing", //Suite primary page, initiates menus and other suite-wide items, initiated everywhere except login
"login": "login"
},
// ########################### Route Callbacks ################################
landing: function() {
console.log(arguments);
console.log('landing');
},
login: function() {
console.log(arguments); //<--- nothing useful, empty array
console.log('login');
}
});
var SuiteRouter=Backbone.Router.extend({
//确定路线################################
路线:{
“”:“:”landing“,//套件主页,启动菜单和其他套件范围的项目,在除登录之外的任何地方启动
“登录”:“登录”
},
//路径回调################################
登陆:函数(){
log(参数);
控制台日志(“着陆”);
},
登录:函数(){
console.log(参数);//可以
var SuiteRouter = Backbone.Router.extend({
// ################################ Defined Routes ################################
routes: {
"": "landing", //Suite primary page, initiates menus and other suite-wide items, initiated everywhere except login
"login": "login"
},
// ########################### Route Callbacks ################################
landing: function() {
console.log(arguments);
console.log('landing');
},
login: function() {
console.log(arguments); //<--- nothing useful, empty array
console.log('login');
}
});
var router = new Router();
router.on("route", function(route, params) {
console.log(route); //will be called every route change in addition to the appropriate other callbacks.
if(route!=="login") {
//do something
}
});
var SuiteRouter=Backbone.Router.extend({
//确定路线################################
路线:{
“”:“:”landing“,//套件主页,启动菜单和其他套件范围的项目,在除登录之外的任何地方启动
“登录”:“登录”
},
//路径回调################################
登陆:函数(){
log(参数);
控制台日志(“着陆”);
},
登录:函数(){
console.log(arguments);//你看过了吗?你没试过吗?路由:{“login”:“login”,“*”:“landing”}
它的区别在于,路由是根据匹配的优先级调用的。在这里,如果我们提供*作为第一根,则无论登录名、foo、bar如何,所有路由都将调用它。但是我们确实希望登录名
对吗?因此,我们通过将登录路由向上推到定义阶梯来赋予其优先级。现在它可以工作:)去享受热切的巧克力吧