angularJS的ui-router传参配置不好的话会发现传过去的参数只是一次性的,也就是刚跳到界面的时候可以捕获到这个参数,再次刷新的时候这个参数就获取不到了。
ui-router传参首先来看一下相关的三个属性:
state:当前路由所处的状态,内含单个路由的所有配置属性
url:当前路由对应的url正则路径
params:传递的参数
例如向一个路由分支为home的页面传递两个参数home_id和home_name:
.state('Home', {
title: "界面模板管理",
url: '/home?:home_id&:home_name',
params: {"home_id": null , 'home_name': null},
templateUrl: 'home.html',
controller: 'homeController',
cache: false
})
注:url
的路径里一定要跟传的参数,否则传参为一次性传参,刷新界面将无法再获取上个页面传递的参数!
$state.go()传参
$state.go("Home",{"home_id": "参数值", "home_name": "参数值"});
ui-serf传参
<span ui-sref="Home({home_id: 参数值, home_name: 参数值})">跳转到Home页</span>
接收参数
先在接受页面的controller中注入 $stateParams
,然后直接使用 $stateParams.home_id
就可以取到想要的 home_id的传值了。