离子角度js隐藏的输入值不显示在另一页面中

时间:2015-10-13 07:13:51

标签: javascript html angularjs ionic

我想在登录用户上设置隐藏的输入值,然后我想在另一个页面中获取隐藏的输入值。

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('/ HomePage'); 以便重定向如下

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!'
            });
        });
    }
})

我无法在下方的 Menu.html 中显示 $ scope.hiddenValue

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

    alert($scope.hiddenValue);

})

当我尝试使用警告($ scope.hiddenValue); 以显示隐藏输入的值时,我得到未定义错误

我想念为什么我无法在另一页显示价值?

2 个答案:

答案 0 :(得分:3)

for

不属于loginCtrl的范围。

$ scope.hiddenValue =“TestValue”; loginCtrl中的statetment将TestValue分配给LoginCtrl的$ scope。

您可以创建服务“user”并拥有this.user =='';

empFound

在您需要共享名称的控制器中注入此“用户”服务。并使用LoginCtrl控制器中的user.setUser('test')设置值。

答案 1 :(得分:-1)

看起来你想要在控制器之间共享数据,这是一个非常普遍的需求。看看这样的事情可能会对你有帮助 - AngularJS: How can I pass variables between controllers?

最好的方法是使用AngularJS服务或工厂。