2016-06-17 9 views
0

Im이 Angular에서 비교적 새로운 것이므로 이것이 최선의 해결책인지는 잘 모릅니다. 클릭하면 하지만 버튼이 상태/경로가이 함수가 호출된다

_this.foo = function() { 
    save(); 
    $state.go("next"); 
} 

문제는 내가 같은 컨트롤러와 다음 상태로받을 때 저장하므로, 함수가 여전히 진행되고 있다는 점이다 다음 페이지 to.Thats 내가 원하는 것을하지, 내가 먼저 그것을 저장하고 다음 다음으로 이동하고 중지 싶습니다.

편집 : 나는 여러 양식을 목록에 포함하고 있으며, 모든 양식에는 승인 단추와 불승인 단추가 있습니다. save() 함수가 호출되면 목록의 모든 양식이 승인되어 백엔드에 저장됩니다. 그리고 나서 다음 페이지로 리다이렉트하지만, 내 앱은 다음 폼 목록을 계속 저장합니다.

함수를 중지하기 위해 $ state.go에 일부 매개 변수를 전달할 수 있습니까? 왜 이런 일이 일어나는지 모르겠습니다.

+1

()'합니까? –

+0

이 작업이 가능합니까? '$ state.go ("next", $ state.params, {reload : true});' –

답변

0

각도 백엔드에 데이터를 저장할 때 약속을 반환해야합니다. 이 약속이 해결되면 나는 다른 주를 바꿀 수 있습니다.

_this.foo = function() { 
    save().then(function(){ 
     //In this point the promise it's already resolved 
     $state.go("next"); 
    }); 
} 

.save() 구현 정확히`절약 할 무엇

function save(){ 
    //where $http.post returns a promise 
    return $http.post('your_api/resource/:id'); 
} 
관련 문제