术语
> #foo:slashless scheme
>#/ foo:slashy计划
背景
应用程序的某些遗留部分使用(并依赖)无划线方案.我想以非破坏性的方式介绍Angular路由(可能使用ui-router),这样就不会干扰传统路由,以便部分应用程序可以随着时间的推移而优雅地逐步淘汰.一旦发生这种情况,全角应用程序可以立即切换到slashy方案.
至今
我尝试将$locationProvider.hashPrefix(”)设置为空字符串,但似乎您只能在#和/之间设置字符串,因此无效.
选项
看来我也可以
>重写应用程序的遗留部分,或
>重写Angular的$locationProvider.hashPrefix默认包含’/’.因此将其设置为”将变得有意义.
这两个选项看起来都非常耗时.
你知道一个更好的方法让Angular认识到这种无条件的方案吗?
解决方法
您可以尝试使用重定向!
使用ui-router:
app.config(function ($urlRouterProvider) { // when there is an 'old' route,redirect to new one $urlRouterProvider.when('foo','/foo'); // You can also use regex for the match parameter $urlRouterProvider.when(/(\w+)/i,'/$1'); // UNTESTED!!!!!! })
对不起,但是标签很难在掠夺者/小提琴中测试,所以我现在不提供一个…