2016-06-11 100 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

这是因为路由游戏是抽象的,当你离开网址为空时,它会从抽象路由中获取网址。 –