2013-07-18 4 views
1

데이터를 데이터베이스에 추가하는 모달 창에 양식이 있습니다. 성공적으로 추가되면 기본 페이지를 새로 고치기 위해 $ route.reload() 함수를 호출하지만 내 모달 창은 계속 표시됩니다. 나는 내 컨트롤러의 시작 부분에 $scope.showModal = false;을 추가하려고하지만 그건 도움이되지 않았다

<div modal="showModal" close="close()" options="opts"> etc </div> 

:

$scope.add = function() { 
     $http.post('/api/contact', $scope.form). 
     success(function(data) { 
      $scope.showModal = false; 
      $route.reload(); 
     }); 
    }; 

모달은 표준 AngularJS와-UI를 모달입니다. 여기

는 plnkr에 코드입니다 :

http://plnkr.co/edit/xz6gJRTBisVCeM0gNLx6?p=preview

주 내가 알고 당신이 목록의 항목을 업데이트 얻을 $route.reload() 옵션을 주석 경우, 그러나 내 응용 프로그램에서 나는에 일을 쓰고 있어요 데이터베이스 그래서 내가 DB를 다시 쿼리해야합니다 $ route.reload 필요 줄.

답변

2

$ route.reload()를 적용하기 전에 시간 초과가 필요합니다. 브라우저가보기를 업데이트하기 전에 실행을 중지하려고하기 때문입니다. 이것은 작동합니다 : http://plnkr.co/edit/E7oraQ?p=preview

또한 각도가 아닌 물건을 다루지 않는 한, DB에 쓰기 위해 다시로드 할 이유가 없습니다. 컨트롤러 내에서 다시 쿼리 할 수 ​​있어야합니다.

관련 문제