我们制作单页面应用代码时会发现一个stateb需要上一个statea给他传递数据的话,在刷新本页面的同时,数据会消失,stateb会无法加载传递的数据。
原因是因为在传递参数的时候是使用的state中params来定义参数的,在刷新页面没有参数传递给stateb时,会无法加载数据,因为stateb没有收到传递过来的数据。
我们可以在url中定义参数的方式使得在刷新页面的时候能够保留下参数。因为在url中定义参数的时候,state会强制性的激活,而我们定义的参数是不会消失的。
下面是代码
functionstateConfig($stateProvider) {
$stateProvider.state('servicedetail',{
parent:'main',
url:'/servicedetail/{id}',
data: {
authorities: []
},
views: {
'@main': {
templateUrl:'app/ldkx/service/servicedetail.html',
controller:'ServiceDetailController',
controllerAs:'vm'
}
},
resolve: {
servicedataload:servicedataload
}
});
}
functionservicedataload(Merchant,$stateParams){
returnMerchant.get({id:$stateParams.id}).$promise;
}