Angularjs将web加法器作为参数传递

时间:2015-07-25 16:18:57

标签: angularjs

我正在尝试将网址作为角度视图之间的参数传递,但它无效。

我正在使用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"

我确定斜线/正在引起问题。

2 个答案:

答案 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?