2016-07-14 2 views
0

두 페이지가 있으며 일부 레코드를 나열하고 다른 하나는 레코드를 클릭하면 자세한 정보를 표시합니다. 내가 몇 가지 기록을 클릭하면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> 

는 방법 고토 (호출합니다) 다음과 같습니다 :

$scope.goTo=function(titreOffre,codeOffre){ 
    titreOffre=titreOffre.replace(/ /g,"-"); 
    $state.go('app.job',{titreOffre:titreOffre,codeOffre: codeOffre}); 
}; 

을 그리고 이것은 app.job입니다

내가 레코드를 나열하는 방법입니다 상태 다음 job-details.html 페이지

.state('app.job', { 
    url : '/job/:titreOffre', 
    params : { 
    'codeOffre' : null 
    }, 
    templateUrl : 'views/tmpl/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로 설정됩니다.

어떻게 해결할 수 있습니까? URL에

1 패스를 :

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

2. sessionStorage :

가 서비스에 getter 및 setter 메소드를 정의

+1

param이 url에 나열되어 있지 않으므로 응답에 언급 된 'sessionStorage'와 같은 곳에 저장되어 있지 않으면 다시로드 할 때 액세스 할 수 없습니다. 다른 옵션은 URL에 추가하는 것입니다. 하지만 당신이 그렇게하고 싶지 않다고 생각합니다. – Chinni

+0

@Chinni 그래, 내가 너 자신을 생각 했어. 나는'job/: codeOffre/: titreOffre'을 당신의 도움에 쓸 것입니다. –

답변

1

두 가지 옵션이 있습니다 읽고 쓰고 codeOffer 값을 업데이트하십시오. 그리고 컨트롤러에서 이러한 방법을 적절히 사용하십시오.

+0

고마워요. 처음 보면 생각했는데, 다른 것이 있는지보고 싶었습니다. 방법은 있지만, 그렇지 않은 것 같습니다. –

관련 문제