2016-10-10 28 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