加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 如何让Angular路由器(或ui-router)接受像`#foo`这

发布时间:2020-12-17 16:58:24 所属栏目:安全 来源:网络整理
导读:术语 #foo:slashless scheme #/ foo:slashy计划 背景 应用程序的某些遗留部分使用(并依赖)无划线方案.我想以非破坏性的方式介绍Angular路由(可能使用ui-router),这样就不会干扰传统路由,以便部分应用程序可以随着时间的推移而优雅地逐步淘汰.一旦发生这种
术语

> #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!!!!!!
})

参考约ui-router wiki

对不起,但是标签很难在掠夺者/小提琴中测试,所以我现在不提供一个…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读