与Django类似{{ url }},是否有通过传递名称和变量来反转特定路线的方法或方法.
// example Router
var router = Backbone.Router.extend({
routes: {
'!/user/:user_id': 'editUserAction',
'!/': 'homeAction'
},
editUserAction(user_id) {
// edit user view
},
homeAction() {
// home view
}
});
Run Code Online (Sandbox Code Playgroud)
有些方法可以
router.reverse('editUserAction', '5');
Run Code Online (Sandbox Code Playgroud)
将返回哈希: !/user/5
router.reverse('homeAction');
Run Code Online (Sandbox Code Playgroud)
将返回哈希: !/
关于反向路由的讨论.https://github.com/documentcloud/backbone/issues/951
一个简单的黑客
var personRoutes = {
list: "/persons",
show: "/persons/:id",
edit: "/persons/:id/edit"
}
var getRoute = function(obj, route, routeDefinitions){
return routeDefinitions[route].replace(":id", obj.id);
}
var person = new Model({id: 1});
var route = getRoute(person, "edit", personRoutes); // => "/persons/1/edit"
Run Code Online (Sandbox Code Playgroud)
不幸的是,没有,主干中没有内置这样的东西。我想要类似的东西,并且在列表上已经对此进行过一两次讨论 - 甚至可能是一个拉取请求(目前不太记得)。但这还没有完成。
我想出的最好的方法是编写自己的方法来生成正确的路由字符串:
function userEditPath(userId){
return "/user/" + userId + "/edit";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |