Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 从包含离子内容的不同离子视图访问变量_Angularjs_Ionic Framework_Angularjs Scope_Ionic View - Fatal编程技术网

Angularjs 从包含离子内容的不同离子视图访问变量

Angularjs 从包含离子内容的不同离子视图访问变量,angularjs,ionic-framework,angularjs-scope,ionic-view,Angularjs,Ionic Framework,Angularjs Scope,Ionic View,我刚开始使用Ionic,有一个HTML代码段,如下所示: <!-- part of index.html --> <body data-ng-app="myapp" data-ng-cloak> <ion-nav-bar class="bar-positive"></ion-nav-bar> <ion-nav-view></ion-nav-view> </body> 因此,如果登录失败,我希望

我刚开始使用Ionic,有一个HTML代码段,如下所示:

<!-- part of index.html -->
<body data-ng-app="myapp" data-ng-cloak>

    <ion-nav-bar class="bar-positive"></ion-nav-bar>
    <ion-nav-view></ion-nav-view>
</body>
因此,如果登录失败,我希望在所需的输入元素中显示用户的邮件地址,以提供更好的可用性,这可以通过使用相同的模型变量来实现

但是,由于我在每个视图中都有一个
ion content
元素,因此它们的范围与其他视图的范围是隔离的,如中所述

我试图通过在
$parent.
前面加上
数据ng模型
属性来获得访问权限,该属性应引用周围
离子视图
标记的外部范围,该标记应可通过写入等方式访问

    <!-- just last three lines of view following -->
    </ion-content>
    {{ user.mail }}
</ion-view>

{{user.mail}
在视图的末尾。然而,情况似乎并非如此

我很确定这个问题会导致范围外继承和DOM中范围元素的层次结构。不幸的是,我不明白这一点。首先,我认为不使用对象表示法进行双向绑定可能会有问题,但我应该已经解决了这个可能的问题

如何从包含
离子内容
元素且具有其自身范围的所有注入视图访问数据模型?链接
$parent
元素,如
$parent.$parent.
似乎不适用于一般方法,也不会产生如上所述的预期结果

<!-- partials/login_failed.html -->

<ion-view view-title="Login failed">
    <ion-content>
        <div class="list list-inset" data-ng-form="forms.login">
            <label class="item item-input">
              <input type="email" name="mail" data-ng-model="user.mail" placeholder="E-Mail-Adress" required>
            </label>
            <label class="item item-input">
              <input type="password" name="password" data-ng-model="user.password" placeholder="Password" required>
            </label>
            <button data-ng-click="logIn()" class="button button-full button-positive">
                Retry
            </button>
            <button data-ng-click="resetPassword()" class="button button-full button-positive">
                Reset Password
            </button>
        </div>
    </ion-content>
</ion-view>
.config(function($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise('/')
    $stateProvider
    .state('login', {
        url: '/login',
        templateUrl: 'partials/login.html',
        controller: 'UserController'
    })
    .state('loginFailed', {
        url: '/login/failed',
        templateUrl: 'partials/login_failed.html',
        controller: 'UserController'
    })
})

.controller('UserController', ['$scope', '$state', function($scope, $state) {
    $scope.user = {};
    $scope.forms = {};

    $scope.logIn = function() {
        var user = $scope.user
        if ($scope.forms.login.$valid) {
            console.log('Form valid');
        } else {
            console.log('Form invalid');
        }
    };
    $scope.register = function() {
        var user = $scope.user
        if ($scope.forms.login.$valid) {
            console.log('Form valid');
        } else {
            console.log('Form invalid');
        }
    };
    $scope.resetPassword = function() {
        var mail = $scope.user.mail
        console.log('Reset user password', mail);
        $state.go('loginReset')

    };
}])
    <!-- just last three lines of view following -->
    </ion-content>
    {{ user.mail }}
</ion-view>