在AngularJS中传递一个具有状态的参数

时间:2016-07-14 12:06:46

标签: angularjs

我有两个页面,on负责列出一些记录,另一个是在我们点击记录时显示更多信息。

这是我列出记录的方式:

<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我传递了一个参数不再保留我传递给它的值它设置为null。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

有两种选择:

<强> 1。将其传递到网址:

url: '/job/:titreOffre/:codeOffer'

<强> 2。使用sessionStorage:

在服务中定义getter和setter方法,以读取,写入和更新codeOffer的值。并在控制器中适当地使用这些方法。