use*_*937 4 angularjs angular-ui-router ionic-framework
在常规的angularjs ui-router状态下,控制器每次激活状态时都会运行.我发现在离子应用程序中处理命名视图时并非如此.命名视图控制器每个元素(游戏)只运行一次.例如.用户显示游戏 - >控制器运行.然后用户进入另一个状态,并且当他们返回显示相同的游戏控制器时不再运行 - 该视图使用之前已经生成的范围.我想用控制器重新初始化游戏范围.
我的代码:
//app.js
.state('app.game', {
url: "/x/{gameID:int}",
views: {
'menuContent': {
templateUrl: "templates/html/my-game.html",
controller: 'GameCtrl'
}
}
})
Run Code Online (Sandbox Code Playgroud)
...
//controllers.js
controllers.controller('GameCtrl', function ($scope, $stateParams, Game) {
//alert("running controller");
Game.get({id: $stateParams.gameID}, function(res){
$scope.game = res;
});
})
Run Code Online (Sandbox Code Playgroud)
编辑:我实际上使用此代码进入游戏视图(目前正在玩Steven Wexler的guid想法)
<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>
Run Code Online (Sandbox Code Playgroud)
我觉得你的问题已经在这篇文章中解决了Angular/Ionic - 控制器只运行一次
brandyshea说你需要添加你想要在$ionicView.enter活动中运行的代码
controller : function( $scope, $cordovaSQLite ){
$scope.$on('$ionicView.enter', function() {
// code to run each time view is entered
});
...
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
839 次 |
| 最近记录: |