用一个网页的url当做参数给angular传参,无法被特定的路由捕获
发布于 18天前 作者 qianjiahao 240 次浏览 来自 问答

这几天弄一个ionic的项目,通过爬虫将数据抓好由server传给前台页面

  <ion-item ng-repeat="item in news" class="item item-icon-left">
         <a href="#/app/list/{{item.href}}" >

通过点击,将新的url作为参数传递到server,开始新的一轮爬虫。 可是,理想很丰满,现实很骨感! 这个路由无法被相应的app捕获

  .state('app.news', {
            url: "/list/:href",
            views: {
                'menuContent': {
                    templateUrl: "templates/news.html",
                    controller: 'SingleNewsCtrl'
                }
            }
        });
        });

总是跳转到 app里的一个default路由。

后来,我开了点脑洞,将之前的a 的href做了点修改

  <ion-item ng-repeat="item in news" class="item item-icon-left">
         <a href="#/app/list/123" >

就传个123当参数,这时,却神奇的被路由捕获了, 然后,我就又换了个值做参数:

  <ion-item ng-repeat="item in news" class="item item-icon-left">
         <a href="#/app/list/{{item.title}}" >

这次呢,title也正常的传递了,不知道是为什么,一个url连接不能作为参数传递~~~

希望大家能帮忙指点下,如何才能将url作为参数传递

注 item.href这个是个网站的完整连接,我再爬虫的时候,就将其转义了,如下

   news.push({
                href: encodeURIComponent($a.attr('href')),
                title: $a.attr('title'),
                date: $i.text()
            });

转义后,页面连接如下:

   <a href="#/app/list/http%3A%2F%2Fnews.neusoft.edu.cn%2F2015%2F0401%2F4705.shtml">
回到顶部