2015-10-13 26 views
1

我想在登錄用戶上設置隱藏的輸入值,然後我想要隱藏輸入值在另一個頁面。Ionic Angular js隱藏的輸入值在另一個頁面中不顯示

的index.html(此網頁已隱藏輸入)

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 
    <title></title> 

    <link href="lib/ionic/css/ionic.css" rel="stylesheet"> 
    <link href="css/style.css" rel="stylesheet"> 

    <script src="lib/ionic/js/ionic.bundle.js"></script> 
    <script src="lib/ionic/ng-cordova-master/demo/www/lib/ngCordova/dist/ng-cordova.js"></script> 
    <script src="cordova.js"></script> 
    <script src="js/app.js"></script> 
    <script src="js/controllers.js"></script> 
    <script src="js/services.js"></script> 

</head> 
<body ng-app="starter"> 

    <input type="hidden" id="hiddenValue" ng-value="hiddenValue" /> 

    <ion-nav-view></ion-nav-view> 
</body> 
</html> 

我設置隱藏的輸入值,那麼我用$ location.path( '/主頁');爲了如下

的login.html的控制器重定向如下

.controller('LoginCtrl', function ($scope, LoginService, $ionicPopup, $state, $location) { 
    $scope.data = {}; 

    $scope.login = function() { 
     LoginService.loginUser($scope.data.username, $scope.data.password).success(function (data) { 

      $scope.hiddenValue = "TestValue"; // I set value here   

      $location.path('/Menu'); 

     }).error(function (data) { 
      var alertPopup = $ionicPopup.alert({ 
       title: 'Login failed!', 
       template: 'Please check your credentials!' 
      }); 
     }); 
    } 
}) 

我不能在下側顯示$ scope.hiddenValue Menu.html

.controller('MenuCtrl', function ($scope, LoginService, $ionicPopup, $state, $location) { 

    alert($scope.hiddenValue); 

}) 

當我嘗試使用警報($ scope.hiddenValue);爲了顯示隱藏的輸入值,我得到未定義的錯誤

我在哪裏錯過爲什麼我不能在另一個頁面顯示值?

+0

在您的應用程序中有隱藏字段的目的是什麼? – Michael

+0

我想將參數傳遞給另一個頁面。例如,如果登錄成功,我想在另一個頁面中顯示用戶名等。 –

+0

您意識到這是做錯的方法。在Angular中,您應該使用服務。 – Michael

回答

3
<input type="hidden" id="hiddenValue" ng-value="hiddenValue" /> 

不屬於loginCtrl範圍內。

$ scope.hiddenValue =「TestValue」; loginCtrl中的語句會將TestValue分配給LoginCtrl的$範圍。

您可以創建一個服務「用戶」,並有this.user =='';

.service('user', function() { 
    this.user = ''; 

    this.setUser = function(name) { 
     this.user = name; 
    } 
}); 

在需要共享名稱的控制器中注入此「用戶」服務。還可以在LoginCtrl控制器中使用user.setUser('test')設置值。

+0

爲了達到這樣的目的,我需要使用什麼? –

+0

請檢查上述編輯。 –