Angular JS 没有从 HTML 获取范围值到控制器

Angular JS not getting scope value from HTML to controller

我正在尝试将 ng-model 值从 html 获取到控制器并变得未定义。

 <div class="row">
      <div class="form-group col-md-12">
           <label class="col-md-2 control-lable" for="uname">User Name</label>
           <div class="col-md-7">
           <input type="text" ng-model="login.user.name" id="uname" class="username form-control input-sm" placeholder="User name" required ng-minlength="3"/>                  
           </div>
           </div>
           </div>
 <button type="button" ng-click="login.getUser(login.user.name)" class="btn btn-warning btn-sm" ng-disabled="myForm.$pristine">Login</button>

在控制器中我使用下面的代码,

function getUser(name){
        console.log('User Name --> '+$scope.login.user.name+" "+$scope.name+" "+self.user.name +$scope.userName+" "+name);

        return LoginService.getUserByName(name);
    }

在app.js我正在使用控制器,

app.config(['$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {

    $stateProvider
        .state('home', {
            url: '/',
            templateUrl: 'partials/list',
            controller:'UserController',
            controllerAs:'ctrl',
            resolve: {
                users: function ($q, UserService) {
                    console.log('Load all users');
                    var deferred = $q.defer();
                    UserService.loadAllUsers().then(deferred.resolve, deferred.resolve);
                    return deferred.promise;
                }
            }
        }).state('login', {
            url: '/login',
            templateUrl: 'partials/login',
            controller: 'loginController',
            controllerAs:'login'
          });
    $urlRouterProvider.otherwise('/');
}]);

我在控制台中未定义。请提出我无法收到该值的原因。

正如我在您的代码中看到的,您使用的是 controllerAs 语法。所以在你的控制器中可能使用 var self = this;

要访问控制器中的模型,请使用此

 console.log('User Name --> '+self.user.name);