我正在尝试有条件地阻止访问某条路线。我认为这可以通过guardRoute来完成:http://durandaljs.com/documentation/Router/
function guardRoute(routeInfo, params, instance) : object
- 在激活任何路由之前,将调用guardRoute 函数。您可以插入此函数来添加自定义逻辑,以根据请求的路由允许、拒绝或重定向。如果允许,则返回 true。要否认,返回 false。要重定向,请返回带有哈希或 url 的字符串。您还可以返回对任何这些值的承诺。
我不确定如何指定应该访问哪个路由,或者如果我需要拒绝访问如何重新路由到另一个视图。有人可以以这种方式发布其使用示例吗?
你应该使用guardRoute
在激活路由器之前,例如在shell.js
。
该示例取自 Durandal 2.0 alpha 站点。据我所知,guardRoute 与 1.2 相比没有改变,但设置断点将允许您弄清楚 1.2 中传递了哪些参数。
作为一般规则,返回true
允许导航,false
为了防止它和hash
or 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();
}
};
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)