В правильном состоянии ui-router с угловым состоянием контроллер запускается каждый раз, когда состояние активировано. Я обнаружил, что это не так, когда речь идет о названных представлениях в ионном приложении. Именованный контроллер представления запускается только один раз для элемента (игры). Например. пользователь показывает запуск игры ->. Затем пользователь переходит в другое состояние и по возвращении к отображению того же игрового контроллера снова не запускается - представление использует уже сгенерированную область ранее. Я хотел бы повторно инициализировать, что игры с контроллером.Как запускать контроллер каждый раз, когда активируется угловой символ ui-router?
Мой код:
//app.js
.state('app.game', {
url: "/x/{gameID:int}",
views: {
'menuContent': {
templateUrl: "templates/html/my-game.html",
controller: 'GameCtrl'
}
}
})
...
//controllers.js
controllers.controller('GameCtrl', function ($scope, $stateParams, Game) {
//alert("running controller");
Game.get({id: $stateParams.gameID}, function(res){
$scope.game = res;
});
})
Edit: Я использую этот код, чтобы перейти к просмотру игры (в настоящее время играет с Guid идеи от Стивена Wexler)
<ion-view view-title="Games">
<ion-content>
<h1>Games</h1>
<ion-list>
<ion-item nav-clear menu-close href="#/app/x/{{game.id}}?guid= {{guid()}}" ng-repeat="game in games">
{{game.id}}
</ion-item>
</ion-list>
</ion-content>
</ion-view>
это, кажется, то, что я ищу. Я скоро обновлю вас. – user1167937
Не забудьте сказать, что это работает нормально, и если вы можете пометить этот ответ как полезный, пожалуйста, – Matho
Хорошо, так что другой вопрос о stackoverflow был примерно таким же вопросом (мой плохо!). Ваш ответ кажется правильным, но лучше всего для меня было добавить «cache: false» в состояние app.game. Больше в документации, связанной с другим вопросом. Спасибо вам всем. – user1167937