2017-04-22 62 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);