用一个网页的url当做参数给angular传参,无法被特定的路由捕获
发布于 10 年前 作者 qianjiahao 9250 次浏览 最后一次编辑是 8 年前 来自 问答

这几天弄一个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">
回到顶部