2016-07-07 2 views
0

내 UI 라우터라고하지 캐시 :AngularJS와 UI 라우터는 다음과 같이 templateUrl, MVC 컨트롤러 설정을

var editMe = { 
     name: 'edit.editme', 
     url: '/users/edit/:Id', 
     parent: edit, 
     templateUrl: function (params) { 
      return '/users/edit/' + params.Id; 
     }, 
     controller: 'EditMeController' 
    } 

이 사용자 정보를 반환 올바른 이드가 내 MVC 컨트롤러의 액션 메서드를 호출합니다. 일부 값을 변경 한 후에이 사용자로 다시 이동하려고합니다. 이제 templateUrl이 캐시되고 내 MVC 컨트롤러 메서드가 다시 호출되지 않아 부실 데이터가 반환됩니다. 어떤 방법 으로이 캐싱을 막을 수 있는지 또는 MVC 액션 메서드가 다시 호출되는지 확인합니다.

감사합니다.

답변

0

좋습니다. 해결책을 찾았습니다. 첫 번째로드 후에 templateUrl이 캐시되면 MVC 컨트롤러가 다시 호출되지 않습니다.

templateProvider를 사용

와 $ http.get이 해결합니다

var editMe = { 
     name: 'edit.editme', 
     url: '/users/edit/:Id', 
     parent: edit, 
     templateProvider: function ($stateParams, $http) { 
      return $http.get('/users/edit/' + $stateParams.Id) 
       .then(function (result) {       
        return result.data; 
       }); 
     },    
     controller: 'EditMeController' 
    }  

$ http.get는 MVC 컨트롤러 방법은 표시 할 반환되는 '신선한'HTML의 결과로, 매번 호출됩니다 보장합니다.

관련 문제