Ozg*_*gen 5 routing angularjs angular-ui-router ionic-framework ionic
我有一个名为newGroupCtrl的控制器,其定义如下:
.state('new_group', {
url: '/new_group',
templateUrl: 'templates/new_group.html',
controller: 'newGroupCtrl'
})
.controller('newGroupCtrl', function ($scope, $rootScope,$ionicHistory,$window) {
$rootScope.roomId = $scope.getRoom();
$scope.getRoom = function () {
var date = new Date;
var minutes = date.getMinutes();
var hour = date.getHours();
return 'room_' + hour + '' + minutes;
};
}
Run Code Online (Sandbox Code Playgroud)
我从上一页到达这个控制器:
$window.location.href = ('#/new_group');
Run Code Online (Sandbox Code Playgroud)
直到现在这都很好.$rootScope.roomId变量在newGroupCtrl控制器中正确初始化.
从这个new_group页面,我导航到另一个页面.当我通过调用导航回这个页面时 $window.location.href = ('#/new_group');,
$rootScope.roomId没有再次初始化,而是它的旧值仍然存在.newGroupCtrl的状态被保留.
如何完全重新初始化newGroupCtrl?
你需要告诉state每一次重新加载控制器URL时通过浏览器只需添加将得到访问reload状态的选项true喜欢reload: true.
码
.state('new_group', {
url: '/new_group',
templateUrl: 'templates/new_group.html',
controller: 'newGroupCtrl',
reload: true //will reload controller when state is being access
});
Run Code Online (Sandbox Code Playgroud)
你应该使用$state.go('new_group')而不是做$window.location.href = ('#/new_group');,这将确保路由更改将识别ui-router.
同样的回答在这里
| 归档时间: |
|
| 查看次数: |
6174 次 |
| 最近记录: |