【问题标题】:Ionic navigation state.go shows previous view离子导航 state.go 显示以前的视图
【发布时间】:2016-10-11 19:58:23
【问题描述】:

我正在使用 ionic 并尝试创建一个应用程序。我遇到的问题是,当我导航到新状态时,使用:

.controller('appCtrl', function($scope, $state) {
    $scope.navigate = function(path) {
        $state.go(path);
    };
})

它导航到我的新视图/模板,但也显示了我从新模板上方导航的前一个模板。附上图片来说明问题。

这些是我的路线

.config(function($stateProvider, $urlRouterProvider) {
    $stateProvider
    .state('login', {
        url: '/login',
        templateUrl: 'views/auth/login.html',
        controller: 'loginCtrl'
    })

    .state('signup', {
        url: '/signup',
        templateUrl: 'views/auth/signup.html',
        controller: 'signupCtrl'
    });

    $urlRouterProvider.otherwise('/login');
});

控制器

.controller('appCtrl', function($scope, $state) {
    $scope.navigate = function(path) {
        $state.go(path);
    };
})

.controller('signupCtrl', function() {})
.controller('loginCtrl', function() {}) 

我的按钮调用新状态:

<button ng-click="navigate('signup')">let's sign up!</button>

View one

View two

任何想法为什么会发生这种情况?

【问题讨论】:

    标签: angularjs ionic-framework


    【解决方案1】:

    你在哪里调用“appCtrl”?

    如果“appCtrl”是一个主控件,你必须像这样改变stateprovider;

     .config(function($stateProvider, $urlRouterProvider) {
            $stateProvider
             .state('app', {
                url: '/app',
                abstract: true,
                templateUrl: 'views/auth/master.html',
                controller: 'appCtrl'
            })
            .state('app.login', {
                url: '/login',
                templateUrl: 'views/auth/login.html',
                controller: 'loginCtrl'
            })
    
            .state('app.signup', {
                url: '/signup',
                templateUrl: 'views/auth/signup.html',
                controller: 'signupCtrl'
            });
    
            $urlRouterProvider.otherwise('/login');
        });
    

    【讨论】:

    • 嘿。我只在 index.html 中使用 appCtrl,例如:,所以我没有通过 stateprovider 调用它。
    【解决方案2】:

    为什么不使用$location.path

    .controller('appCtrl', function($scope, $location) {
        $scope.navigate = function(path) {
            $location.path(path);
        };
    })
    

    其中path的值是你$stateProvider的URL值

    【讨论】:

      猜你喜欢
      • 2016-08-13
      • 1970-01-01
      • 2015-09-09
      • 2017-09-14
      • 1970-01-01
      • 2016-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多