2016-06-11 3 views
0

하위 상태에서 템플릿을 변경하고 다시보기로 이동하면 처음로드 된 (템플릿이 업데이트되기 전에)보기가 표시됩니다.각도 ui-router 상태 하위 뷰가 편집 후 업데이트되지 않습니다.

Google 크롬으로 테스트했습니다. 인터넷 익스플로러, 마이크로 소프트 에지 모두 같은 문제.

내 상태

$stateProvider 
     .state('games', { 
      abstract: true, 
      url: "/?username&token", 
      templateUrl: "games/views/Games.html", 
      controller: 'GamesController' 
     }) 
     .state('games.open', { 
      url: '', 
      templateUrl: "games/views/GamesOpen.html" 
     }) 
     .state('games.active', { 
      url: "/active", 
      templateUrl: "games/views/GamesActive.html" 
     }) 

HTML 문제는 뷰가 캐시 것 같다

는, 전이가 완벽하게 작동

<a ui-sref=".open"><button>open games</button></a> 
    <a ui-sref=".active"><button>active games</button></a> 
    <div ui-view></div> 
단지 내가 업데이트 된 템플릿을 볼 수없고, 항상로드 된 첫 번째로로드 된 템플릿을 확인하고 업데이트 된 버전은 표시되지 않습니다.

A similair question은 URL 끝에 '? + new Date()를 추가하여 문제를 해결하지만 해킹처럼 보입니다.

+0

Plunkr을 환영합니다. 라이브 데모를 사용하면 문제를 해결하는 데 도움이됩니다. –

+0

어떻게 템플릿을 변경합니까? 서버 측 렌더링? – CozyAzure

+0

@CozyAzure 개발중인 localy 나는 테스트를 위해 http-server https://www.npmjs.com/package/http-server를 사용합니다. –

답변

0

귀하의 게임에 URL이 없습니다. 공개 상태 : 문제가있는 것으로 확인하십시오.

app.config(function($stateProvider,$urlRouterProvider){ 

$stateProvider.state('list',{ 
    url:'/list', 
templateUrl:'templates/list.html' 
}); 


$stateProvider.state('edit',{ 
    url: '/edit/:noteId', 
    templateUrl: 'templates/edit.html', 
    controller:'EditCtrl' 
}); 

$stateProvider.state('add',{ 
     url: '/add', 
     templateUrl: 'templates/edit.html', 
     controller:'AddCtrl' 
    }); 

$urlRouterProvider.otherwise('/list'); 

}); 

(내 특정 응용 프로그램에서 잘 내 경우)

와 버튼이 같은 을 사용합니다 :

을 나는이 코드를 사용하는 응용 프로그램

를 작성했다

<a href="#/add" class="button button-assertive ion-left ion-compose">New Note</a> 
+1

URL을 비워두면 라우트 게임이 추상이기 때문에 URL을 추상 경로에서 가져옵니다. –

관련 문제