我正在尝试将网址作为角度视图之间的参数传递,但它无效。
我正在使用uiRouter并具有嵌套状态。
这是代码:
.state('tab', {
url: '/tab',
abstract: true,
templateUrl: 'templates/tabs.html'
})
.state('tab.chat-detail', {
url: '/home/:url1/:url2',
views: {
'tab-home': {
templateUrl: 'templates/chat-detail.html',
controller: 'ChatDetailCtrl'
}
}
})
我在网址中传递链接为:
href="#/tab/home/www.somepage.com/nesteded?id=99/www.second.com/page/one/more"
我确定斜线/正在引起问题。
答案 0 :(得分:0)
您的问题是www.second.com/page/one/more
缺少协议。如果没有协议,只要将其传递给href
,浏览器会将其解释为相对网址。
您需要更正源或解析源代码以检查它是否具有协议,然后才能在视图中使用它
如果没有提供更多代码,则无法提供更多帮助
答案 1 :(得分:0)
使用百分比编码:https://en.wikipedia.org/wiki/Percent-encoding。对于斜杠,您需要输入%2F。使用URL编码器/解码器执行此操作:http://www.url-encode-decode.com/
输入为http://www.somepage.com/nesteded?id=99
,因此您的网址编码网址为http%3A%2F%2Fwww.somepage.com%2Fnesteded%3Fid%3D99
,您的链接为<a href="#/tab/home/http%3A%2F%2Fwww.somepage.com%2Fnesteded%3Fid%3D99/http%3A%2F%2Fwww.second.com%2Fpage%2Fone%2Fmore">
您可以在此堆栈溢出问题中编写过滤器链接,以便更轻松:How to generate url encoded anchor links with AngularJS?