ionic开发App中的页面传值问题以及解决方案
方法一:url 传值
i. html中
<a href="#/main/page1/{{item.id}}"
ii. app.js中
//薪资详情
.state('salaryDetail', {
url: '/main/page1/:id',
templateUrl: 'templates/salaryDetail.html',
controller: 'SalaryDetailCtrl',
})
iii. 在controller中使用$stateParams中获取参数
console.log($stateParams.id)
方法二:使用$state进行页面切换
i. 使用$state.go()时,带上参数
$state.go('state1', {
id: '22',
obj: {
key: 'value'
}
});
ii. 在controller中使用$stateParams中获取参数
console.log($stateParams.id);
console.log($stateParams.obj);
另外:页面多个值传递的方法
A
i. html中,依次写上
<a href="#/main/page1/{{item.id}}/{{item.type}}"
ii. app.js中
//薪资详情
.state('salaryDetail', {
url: '/main/page1/:id/:type',
templateUrl: 'templates/salaryDetail.html',
controller: 'SalaryDetailCtrl',
})
iii. 在controller中使用$stateParams中获取参数
console.log($stateParams.id)
console.log($stateParams.type)
B .也可以将多个值放入数组,一次性传递然后再解析数组
i. html中,依次写上
<a href="#/main/page1/{{array}}"
ii. app.js中
//薪资详情
.state('salaryDetail', {
url: '/main/page1/:array',
templateUrl: 'templates/salaryDetail.html',
controller: 'SalaryDetailCtrl',
})
iii. 在controller中使用$stateParams中获取参数,再进行解析
console.log($stateParams.array)
当然,还有其它方法例如全局变量、存入sessionStorage、localStorage等等。不是很常用,很简单,直接存入进去,需要的时候拿出来就行。