$ state.go()没有刷新我的离子页面

时间:2016-07-05 05:54:37

标签: angularjs ionic-framework

我尝试了几种方法,但是$ state.go()没有刷新我的页面。这是我的控制器。所有过程都有效但我无法使用$ state.go()函数重新加载浏览页面。

angular.module(' kawaadi.controllers',[])

.controller('AppCtrl', function ($scope, Service, $ionicLoading, $ionicModal, $ionicPopup, $timeout, $state, $http,$location) {

    $scope.loginData = {};

    $ionicModal.fromTemplateUrl('templates/login.html', {
        scope: $scope
    }).then(function (modal) {
            $scope.modal = modal;
        });

    $scope.closeLogin = function () {
        $scope.modal.hide();
    };

    $scope.login = function () {
        $scope.modal.show();
    };
    $scope.logout = function () {
        localStorage.setItem("token", "");
        $state.go('login');
    };

    $scope.statusData = function (pid, uid, status) {
        $ionicLoading.show({
            template: 'Processing...'
        });
        Service.change_status(pid, uid, status, $http).success(function (data) {
            if (data.status === 'success' && data.notification_status === 'success') {
                $ionicLoading.hide();
                var alertPopup = $ionicPopup.alert({
                    title: 'Success!',
                    template: 'Successfully changed and notification has been send!'
                });
            } else if (data.status === 'success' && data.notification_status === 'failure') {
                $ionicLoading.hide();
                var alertPopup = $ionicPopup.alert({
                    title: 'Success!',
                    template: 'Successfully changed but failed to send notification!!'
                });
            }
            alertPopup.then(function (res) {
                if (res == true) {
                    $state.go('app.browse');
                }
            });
        }).error(function (data) {
                var alertPopup = $ionicPopup.alert({
                    title: 'Process failed!',
                    template: 'Some thing went wrong!'
                });
            });

    }
})

这是我的网址

    .config(function ($stateProvider, $urlRouterProvider) {
        $stateProvider

                .state('login', {
                    url: '/login',
                    templateUrl: 'templates/auth.html',
                    controller: 'LoginCtrl'
                })
                .state('app', {
                    url: '/app',
                    templateUrl: 'templates/menu.html',
                    controller: 'AppCtrl'
                })

                .state('app.search', {
                    url: '/search',
                    views: {
                        'menuContent': {
                            templateUrl: 'templates/search.html'
                        }
                    }
                })

                .state('app.browse', {
                    url: '/browse',
                    views: {
                        'menuContent': {
                            templateUrl: 'templates/browse.html',
                            controller: 'pickupCtrl'
                        }
                    }
                })
                .state('app.playlists', {
                    url: '/playlists',
                    views: {
                        'menuContent': {
                            templateUrl: 'templates/playlists.html',
                            controller: 'PlaylistsCtrl'
                        }
                    }
                })

                .state('app.single', {
                    url: '/playlists/:playlistId',
                    views: {
                        'menuContent': {
                            templateUrl: 'templates/playlist.html',
                            controller: 'PlaylistCtrl'
                        }
                    }
                });
    });

请指导我。提前致谢

3 个答案:

答案 0 :(得分:1)

请将您的所有州修改为

.state('emailConfirmation',{
    cache: false,
    url:"/emailConfirmation",
    templateUrl:"app/session/emailConfirmation.html",
    controller: 'EmailConfirmationCtrl'
  })

并重新加载当前页面请使用这些命令

$state.transitionTo($state.current, $stateParams, { 

       reload: true,
       inherit: false,
       notify: true 
});

答案 1 :(得分:0)

如果您想强制重新加载当前状态,那么您可能需要使用$state.go($state.current.name, $state.params, {reload: true}) here

答案 2 :(得分:0)

只需在离子视图标记中添加以下内容

<ion-view cache-view="false">