【发布时间】:2017-09-08 23:14:51
【问题描述】:
问题
我有一个如下所示的抽象路由:#/app/lists/:label。
当用户创建'Breakfasts' 的“标签”时,这非常棒。
但是,当label 的值为'#All' 时,则为$stateParams.label === ""。
问题
如何让 Angular/-ui-router 确认 #/app/lists/#All 的文字 URL 中的 octothorpe(哈希符号)? ($stateParams.label)
允许用户添加 octothorpe,例如 #All 或 #Public,是我想为用户保留的必要约定。当这个角色出现时,我该怎么做才能得到这个“标签”?
【问题讨论】:
-
#是 URL 中的控制字符,它不能用作参数的一部分,就像/、:、&或?. -
也许是 Angular/UI-Router 中的一个控制字符。但是
window.location.hash将其作为字符串值的一部分提供;尽管它也为您提供了领先的#——但有趣的是,Angular 没有为您提供"".split('#')值,例如"All"。它真的只是炸毁了这个 $stateParams 属性。
标签: javascript angularjs angular-ui-router hashtag routeparams