ionic跨页面传参
1、controller中添加$cacheFactory服务。
eg:从home页传递name到login页面显示
angular.module('ysw.controllers', [])
.controller('HomeCtrl', function ($scope, $cacheFactory, $state) {
try {
var name = '123';
$cacheFactory('cache').put('name',name);//创建一个缓存对象,再存name值
$scope.goTo = function () {
$state.go('login');
};
} catch (e) {
console.error(e);
}
})
.controller('LoginCtrl', function ($scope, $cacheFactory) {
try {
$scope.name = $cacheFactory.get('cache').get('name');//得到缓存对象再取值
} catch (e) {
console.error(e);
}
})
PS:销毁对象cache
$cacheFactory.get('cache').destroy();
删除键值对name
$cacheFactory.get('cache').remove('name');
以下例子传参方式均为:从home页面传递name和age到login页面:
angular.module('ysw.controllers', []) .controller('HomeCtrl', function ($scope, $state) { try { var name = 'zella'; var age = '20'; $scope.goTo = function () { $state.go('login',{name:name,age:age});//传参方式 $state.go('login',{object:JSON.stringify(object)});//所传参数object为对象 }; } catch (e) { console.error(e); } }) .controller('LoginCtrl', function ($scope,$stateParams) { try { $scope.name = $stateParams.name; $scope.age = $stateParams.age;//接收参数方式 $scope.object= JSON.parse($stateParams.object);//所接收参数为对象 } catch (e) { console.error(e); } })
2、接收参数的页面url中添加参数,以/:a/:b...等的方式
.state('login', {
url: '/login/:name/:age',
cache: 'false',
views: {
'default': {
templateUrl: 'templates/login.html',
controller: 'LoginCtrl'
}
}
})
3、接收参数的页面url中添加参数,以/{a}/{b}...等的方式
.state('login', {
url: '/login/{name}/{age}',
cache: 'false',
views: {
'default': {
templateUrl: 'templates/login.html',
controller: 'LoginCtrl'
}
}
})
4、在app.js中添加params参数
.state('login', {
url: '/login',
cache: 'false',
params:{name:'',age:''},
views: {
'default': {
templateUrl: 'templates/login.html',
controller: 'LoginCtrl'
}
}
})

浙公网安备 33010602011771号