SB2*_*055 3 single-page-application durandal
我试图有条件地阻止访问路由.我认为这可以用guardRoute完成:http://durandaljs.com/documentation/Router/
function guardRoute(routeInfo, params, instance) : object- 在激活任何路由之前,调用guardRoute函数.您可以插入此功能以添加自定义逻辑,以根据请求的路径允许,拒绝或重定向.允许,返回true.否认,返回false.要重定向,请返回带有散列或URL的字符串.您也可以返回任何这些值的承诺.
我不知道如何指定应该访问哪条路径,或者如果我需要拒绝访问,如何重新路由到另一个视图.有人可以用这种方式发布它的使用示例吗?
您应该guardRoute在激活路由器之前使用,例如shell.js.该示例来自Durandal 2.0 alpha站点.AFAIK guardRoute没有从1.2改变,但是设置一个断点将允许你找出传递1.2的参数.作为一般规则,返回true允许导航,false以防止它和a hash或url值重定向.
define(['plugins/router'], function (router) {
// Redirecting from / to first route in route.map
router.guardRoute = function(routeInfo, params, instance){
if (params.fragment === ''){
return routeInfo.router.routes[0].hash;
}
return true;
};
...
return {
...
router: router,
activate: function () {
router.map([
---
]);
return router.activate();
}
};
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3683 次 |
| 最近记录: |