这篇文章主要介绍了AngularJS如何实现跨页面传值,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
用的ionic
这里使用ui-router传值,用来在跳转页面的同时带着你想带走的东西一起跳走
需求是这样的,我有一个商品单子(概览页),点一个商品就可以去看它的详情(详情页)
要解决的问题就是把概览页被点击的商品的id传给详情页,详情页拿着这个id给后台,后台返回对应的需要的json
下面开始实现
.controller('CafeCtrl', function($scope, cafeData, $state) { //往外传值的controller里加一个$state
$scope.cafeList = cafeData.All();
$scope.goDetail = function(id) {
$state.go('itemDetail',{sort : "cafe", id : id}); //就拿它传
};
})
在传值的一行:
$state.go('itemDetail',{sort : "cafe", id : id});
//前面的是变量名,后边的是值
我的理解是:塞了两个变量到一个中转的名叫$stateParams的什么东西里面,controller里面写法就是这样子的,页面上ng-click="goDetail(item.id)"调用它就可以了
app.js里,接收值的页面(详情页).state这么写,留两个位置给刚才传出来的东西
.state('itemDetail', {
url: '/itemDetail/:sort/:id/', //这里就是那两个要传的东西,名字要对应相同
templateUrl: 'templates/itemDetail.html',
controller: 'ItemDetailCtrl'
})
然后再去接收值的页面(详情页)接收这俩值存俩对象里面(接受并存下了传来的两个值)
.controller('ItemDetailCtrl', function($scope, $stateParams, $state) { //加个$stateParams
$scope.sort = $stateParams.sort;
$scope.itemId = $stateParams.id;
})
在上面加个$stateParams,然后下面scope一个对象,把你要的值从$stateParams里面拿点儿出来赋值给它就ok了
感谢你能够认真阅读完这篇文章,希望小编分享的“AngularJS如何实现跨页面传值”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!