我有一个骨干应用程序,例如http://foo.com。我的应用程序对于不同的区域表现不同,所以如果我导航到http://foo.com/TX加载了不同的信息集,而如果我导航到http://foo.com/OK则加载另一组信息。这些必然不构成主干路径的一部分,并且是网址本身的一部分。
我还修改了我的骨干路由,忽略了url中的第二个参数,同时考虑了路由器初始化函数中的路由,
routes = [
[/\w+/, 'default', this.default],
[/\w+\/login/, 'login', this.login]
];
_.each(routes, function(route) {
router.route.apply(router,route);
});
但当我app.navigate("login", true)
时,它会将我的网址更改为http://foo.com/home。我期望看到的是http://foo.com/TX/home,以便它保留区域信息。我怎样才能做到这一点?
答案 0 :(得分:0)
假设您的应用位于指定位置,您的路由器将返回该位置,而无需添加额外的区域代码。一种选择是扩展您的路由器模型并覆盖主干网的导航功能(documentation)以合并区域代码,但这可能是危险的,超出了您想要采取的范围对你自己。
另一种选择是在路由器上调用路径而不更新URL(documentation)。这将运行您的代码并更新页面,但不会根据需要重置URL。使用此选项,您可能希望使用选项
调用路由器router.route.apply("login", {trigger: true, replace: false})