2016-06-11 98 views
0

當我從一個子狀態的模板進行更改,我再次去視圖第一次加載(所以在模板更新之前)視圖給出。角度ui路由器狀態子視圖編輯後不更新

我已經用谷歌瀏覽器對它進行了測試。互聯網瀏覽器,微軟邊緣所有相同的問題。

我的狀態

$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即時開發我使用http-server https://www.npmjs.com/package/http-server進行測試。 –

回答

0

你沒有任何網址在你的game.open狀態:請檢查,我猜這是一個問題。

當我是創建一個應用程序

我使用此代碼:

(以及在我的情況在我的某些應用)

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

這是因爲路由遊戲是抽象的,當你離開網址爲空時,它會從抽象路由中獲取網址。 –