如何获得内部ng模型值?

时间:2017-02-07 11:43:46

标签: angularjs angularjs-rootscope

我正在使用SPA,我在HTML的基本页面中加入了ng-include个页面。我们将此基本页面称为external,将包含的页面称为internal。在内部页面中,我将输入属性设置为ng-model="userd.Username",在外部页面中我想获取此输入的值。

在某个内部网页register.html中,有以下代码:

<div class="form-group">
        <div class="form-group">
            <span class="regForm text-danger">*</span> <input
                ng-model="userd.Username" type="text" maxlength="10"
                placeholder="Enter your name" class="form-control input-md"
                required />
        </div>
        <div class="form-group">
            <span class="regForm text-danger">*</span> <input
                ng-model="userd.Password" type="password" maxlength="8"
                placeholder="Enter your password" class="form-control input-md"
                required />
        </div>
        <div class="form-group">
            <span class="regForm text-danger">*</span><input
                ng-model="userd.Nickname" type="text" maxlength="20"
                placeholder="Enter your nickname" class="form-control input-md"
                required />
        </div>
        <div class="form-group">
            <input ng-model="userd.Description" type="text" maxlength="50"
                placeholder="Enter description about you"
                class="form-control input-md" />
        </div>
        <div class="form-group">
            <input ng-model="userd.Photo" type="text"
                placeholder="Enter photo URL" class="form-control input-md" />
        </div>
        <div class="form-group">
            <button ng-click="registerBtn()" class="btn btn-primary">Register</button>
        </div>
    </div>

在外部页面中:

    <div ng-include="'register.html'" ng-controller="registerCon" ng-show="logreg"></div>

我尝试在外部页面的主控制器中使用$rootscope,如下所示:

var appvar = angular.module('myApp', []);
    //The Main Controller of the page (single web page)
    appvar.controller('myCtrl',['$scope','$http','$rootScope',function($scope, $http,$rootScope) {                      
                $rootScope.storedsession="";
    }]);

在控制器'registerCon'中我写道:

appvar.controller('registerCon',['$scope','$http','$rootScope',function($scope, $http, $rootScope) {
                $scope.registerBtn = function() {
                    console.log(this.userd);
                    $http.post("http://localhost:8080/ExampleServletv3/registeruser",this.userd)
                            .success(function(response) {
                                console.log(response);
                                setTimeout(function () {
                                    $scope.$apply(function(){
                                        $rootScope.storedsession=this.userd.Username;
                                        console.log($rootScope.storedsession);
                                    });
                                });
                            });
                };
    }]);

但它在控制台中为undefined打印console.log($rootScope.storedsession);,我也尝试使用$ scope而不是$ rootScope,但它也没有用。

有人能帮助我吗?

由于

0 个答案:

没有答案