angularjs页面的跳转与传参

方法一:location.href

第一个界面:布局

 <li ng-repeat="remindItemData in remindListData" ng-click="goto(remindItemData)">
 //do somgthing
</li>

第一个界面:js跳转方法

$scope.goto=function (msg) {
    var hre = 'remind_info.html?msg=' + angular.toJson(msg);
    //传递对象:先将对象转成字符串(序列化)
    location.href = hre;
};

第二个界面:js获取参数:

var urlValue='';
var href = location.href; //取得整个地址栏
urlValue = href.substr(href.indexOf("=") + 1);
//此处只有一个参数,先截取参数值(等号后的值)。
message=angular.fromJson(decodeURI(urlValue));
//传参会转码,所以先解码,再把字符串string转对象

if(message.picUrl.length>0){
    for (var i = 0; i < message.picUrl.length; i++){
        message.picUrl[i] = decodeURIComponent(message.picUrl[i]);
        //接收的参数在解码转对象时,参数里的MP3或者图片的url未被解码,
        //所以继续decodeURIComponent解码,并重新赋值。
    }
}

方法二:标签a href

第一个界面的布局:

 <a href="news_detail.html?id={{items.id}}" ng-cloak>
 //do something
 </a>

第二个界面的js:

var noticeId = "";
if ($location.search().id) {
    noticeId = $location.search().id;
}

参考:

angularjs页面带参跳转以及参数解析

// 带#号的url,看?号的url,见下面  
url = http://qiaole.sinaapp.com?#name=cccccc  
  
$location.absUrl();  
// http://qiaole.sinaapp.com?#name=cccccc  
  
$location.host();  
// qiaole.sinaapp.com  
  
$location.port();  
// 80  
  
$location.protocol();  
// http  
  
$location.url();  
// ?#name=cccccc  
  
// 获取url参数  
$location.search().name;  
// or  
$location.search()['name'];  
  
// 注:如果是这样的地址:http://qiaole.sinaapp.com?name=cccccc  
  
var searchApp = angular.module('searchApp', []);  
searchApp.config(['$locationProvider', function($locationProvider) {  
  $locationProvider.html5Mode(true);  
}]);  
searchApp.controller('MainCtrl', ['$scope', '$location', function($scope, $location) {  
  if ($location.search().keyword) {  
    $scope.keyword = $location.search().keyword;  
  }  
}]);  

参考:

AngularJs $location获取url参数

angularjs中的location简介

$location服务解析在浏览器地址栏中的URL(基于window.location)并且让URL在你的应用中可用。
改变在地址栏中的URL会作用到$location服务,同样的,改变$location服务也会改变浏览器的地址栏。
(可以使用$location进行重定向等操作)

$location服务:
暴露浏览器地址栏中的URL,让你可以:

监察URL。
改变URL。
与浏览器同步URL,当:

改变地址栏。
单击『前进』『后退』或一个历史记录中的链接。
打开一个链接。
将URL对象表示为一个方法集。 (protocol, host, port, path, search, hash)

服务依赖:
$browser
$sniffer
$rootElement

内置方法:
absUrl( ):只读;根据在RFC 3986中指定的规则,返回url,带有所有的片段。

hash( ):读、写;当带有参数时,返回哈希碎片;当在带有参数的情况下,改变哈希碎片时,返回$location。

host( ):只读;返回url中的主机路径。

path( ):读、写;当没有任何参数时,返回当前url的路径;
当带有参数时,改变路径,并返回$location。(返回的路径永远会带有/port( ):只读;返回当前路径的端口号。

protocol( ):只读;返回当前url的协议。

replace( ):如果被调用,就会用改变后的URL直接替换浏览器中的历史记录,
而不是在历史记录中新建一条信息,这样可以阻止『后退』。

search( ):读、写;当不带参数调用的时候,以对象形式返回当前url的搜索部分。

url( ):读、写;当不带参数时,返回url;当带有参数时,返回$location。

内置事件:
$locationChangeStart:在URL改变前发生。
这种改变可以通过调用事件的preventDefault方法为阻止。
查看ng.$rootScope.Scope#$on获得更多的细节。成功时触发$locationChangeSuccess事件。

$locationChangeSuccess:当URL改变后发生。

使用
何时使用$location
任何你想要改变当前URL的时候,都可以使用$location。

$location不会做
当浏览器的URL改变时,不会重新加载整个页面。
如果想要重新加载整个页面,需要使用$window.location.href。

参考:

$location 服务

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值