2017-04-22 63 views
0

我想从HTML获取ng模型的值到控制器并得到未定义。角JS没有得到从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('/'); 
}]); 

我在控制台得到未定义。请提出为什么我无法获得价值。

+0

你用鉴于'controllerAs'语法?请显示更多代码。 –

+0

添加到控制器$ scope.test =“测试范围”并查看某处{{test}}并告诉我们您是否能够看到“测试范围” – DiPix

回答

0

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

访问模型控制器使用这种

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