我有两个页面,on负责列出一些记录,另一个负责显示我们点击记录时的更多信息。在AngularJS中传递一个具有状态的参数
这是我的列表中的记录:
<ul id="myList">
<li ng-repeat="offre in offres | orderBy:'-dateCreation' | filter:{etat:'true'} | limitTo:limit">
<h4><a href="" ng-click="goTo(offre.titre,offre.codeOffre)">{{offre.titre}}</a></h4>
</li>
</ul>
当我点击一些记录它会调用该方法GOTO(),这是因为以下几点:
$scope.goTo=function(titreOffre,codeOffre){
titreOffre=titreOffre.replace(/ /g,"-");
$state.go('app.job',{titreOffre:titreOffre,codeOffre: codeOffre});
};
这是app.job
状态:
.state('app.job', {
url : '/job/:titreOffre',
params : {
'codeOffre' : null
},
templateUrl : 'views/tmpl/job-details.html'
})
在
job-details.html
页面
我使用,我通过了codeOffre到app.job
作为参数,以获取有关该记录的数据如下:
$http.get('http://localhost:8080/offre/offres/' + codeOffre)
.then(function (response) {
return response;
}, function (error) {
return 'There was an error getting data';
});
所以这一切工作正常,唯一的问题是,当我显示job-details.html
页面,然后我刷新它,我通过了该codeOffre
param不再保留我传递给它的值并将其设置为null。
我该如何解决这个问题?
由于param未在url中列出,因此您不能在重新加载时访问它,除非它存储在像回答中提到的'sessionStorage'之类的地方。其他选项是将其添加到网址。但我想你不想这样做。 – Chinni
@Chinni是啊,那是我以为我自己,我打算使用'job /:codeOffre /:titreOffre',感谢您的帮助 –