根据标志动态创建 backbone 路由
Creating backbone routes dynamically based on flags
我正在尝试为用户动态创建 backbone 路由,前提是登录用户有权查看该特定 route.In 我当前的实现已创建路由并调用相应的路由功能,在该功能中我将检查用户是否具有所需的权限,如果没有重新路由到默认页面。我可以根据条件自己创建路由,这样我就不必每次都检查用户是否具有适当的权限。
var Workspace = Backbone.Router.extend({
routes: {
"help": "help",
"search/:query": "search",
"search/:query/p:page": "search",
"default": "default"
},
help: function() {
if(!permission1){
router.navigate('default', true);
}
//write logic
},
search: function(query, page) {
if(!permission2){
router.navigate('default', true);
}
//write logic
},
//write logic for other routes
});
阅读backbonejs文档后想到的问题解决方法如下:
var GlobalRouter = Backbone.Router.extend({
initialize: function () {
this.route('*path','default',showDefault);
if (permission1) {
this.route('menu1', 'menu1', showMenu1);
}
if (permission2) {
this.route('menu2', 'menu2', renderMenu2);
}
if (permission3) {
this.route('menu3', 'menu3', renderMenu3);
}
}
});
这样创建路由意味着如果用户没有权限查看某个路由,则无需再次检查权限,因为路由不会发生,因为它从未创建。
我正在尝试为用户动态创建 backbone 路由,前提是登录用户有权查看该特定 route.In 我当前的实现已创建路由并调用相应的路由功能,在该功能中我将检查用户是否具有所需的权限,如果没有重新路由到默认页面。我可以根据条件自己创建路由,这样我就不必每次都检查用户是否具有适当的权限。
var Workspace = Backbone.Router.extend({
routes: {
"help": "help",
"search/:query": "search",
"search/:query/p:page": "search",
"default": "default"
},
help: function() {
if(!permission1){
router.navigate('default', true);
}
//write logic
},
search: function(query, page) {
if(!permission2){
router.navigate('default', true);
}
//write logic
},
//write logic for other routes
});
阅读backbonejs文档后想到的问题解决方法如下:
var GlobalRouter = Backbone.Router.extend({
initialize: function () {
this.route('*path','default',showDefault);
if (permission1) {
this.route('menu1', 'menu1', showMenu1);
}
if (permission2) {
this.route('menu2', 'menu2', renderMenu2);
}
if (permission3) {
this.route('menu3', 'menu3', renderMenu3);
}
}
});
这样创建路由意味着如果用户没有权限查看某个路由,则无需再次检查权限,因为路由不会发生,因为它从未创建。