2016-10-10 63 views
0

我正在使用ionic并试图创建一个应用程序。我遇到的问题是,当我浏览到一个新的状态,通过使用:离子导航state.go显示以前的视图

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

它浏览到我的新的视图/模板,但也显示出这是我从新建模板上方导航以前的模板。附上的图片展示了这个问题。

Theese是我的路线

.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

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

回答

0

你在哪里调用“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'); 
    }); 
+0

嘿值。我只在我的index.html中使用appCtrl,如下所示:,所以我不通过stateprovider调用它。 – newbieDevs

0

为什么不使用$location.path

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

其中path的值是URL的你$stateProvider