2016-05-02 72 views
0

我試圖從一個活動轉移到另一個使用離子。 我沒有任何錯誤,但行動不起作用。重定向離子

我的狀態是:

的.config(函數($ stateProvider){$ stateProvider .STATE( '指數',{ templateUrl: '的index.html', 網址: '/' }) .STATE( '家',{ templateUrl: '模板/ welcome.html', URL: '/家' });} )

我的控制器:

.controller('HomeCtrl', function($scope, $state, $http, $location) { 

    $scope.login = function(user) { 
     $http.get("http://localhost/app_dev.php/json/login/"+user.username+"/"+user.password) 
     .then(function(response){ 
      console.log(response.data.status); 
      if(response.data.status === 200) 
      { 
       alert("redirect to main page"); 
       $location.path("/home"); 
      }else if(response.data.status === 403){ 
       alert("Login or password incorrect"); 
      }else{ 
       alert("User not found"); 
      } 
     }); 
    }; 
}) 

當我receve我的JSON,我沒有錯誤,但重定向不顯示

+0

你使用的是UI路由器嗎? –

回答

0

我有一個類似這樣的問題,我所做的只是添加$事件到我的登錄方法在我的HTML模板。

<button ng-click="login(user,$event)"></button> 

然後在我的js中我調用event.preventDefault();

.controller('HomeCtrl', function ($scope, $state, $http, $location) { 

    $scope.login = function (user, event) { 
     $http.get("http://localhost/app_dev.php/json/login/" + user.username + "/" + user.password) 
      .then(function (response) { 
       console.log(response.data.status); 
       if (response.data.status === 200) { 
        event.preventDefault(); 
        alert("redirect to main page"); 
        $state.go("home"); 
       } else if (response.data.status === 403) { 
        alert("Login or password incorrect"); 
       } else { 
        alert("User not found"); 
       } 
      }); 
    }; 
}) 
1

我認爲你是非常混淆的狀態和位置,我建議保持簡單並且使用只有狀態

嘗試注入$狀態和使用它,因爲我可以看到你定義爲「家」的狀態,這也許應該做的伎倆:

$state.go("home"); 

,而不是使用

$location.path 

我希望幫助

+0

我試過但沒有結果 –

+0

控制檯中有任何錯誤或輸出? –

+0

不,我只是回覆說認證是正確的狀態,但它不會改變視圖 –

0

$ionicHistory.goBack()應該是最有效的方法,我想。