2016-11-08 113 views
2

输入字段值在输入字段中未显示。我同时使用ng-model & data-ng-model。不使用ng-model显示的值。使用ng-model时不显示AngularJS输入字段值

即1:

<input type="text" value="{{accountDetailsBody.phoneNumber}}" data-ng-model="vm.user.phoneno" name="phoneno" id="phoneno" class="form-control"> 

即2:

<input type="email" name="email" class="form-control" id="email" ng-model="vm.user.email" readonly ng-pattern="/^[_a-z0-9]+(\.[_a-z0-9]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/" placeholder="Email" ng-maxlength="30" required> 

控制器

(function() { 
     'use strict'; 
     angular 
       .module('app') 
       .controller('accountController', accountController); 
     accountController.$inject = ['ApiService', '$rootScope', 'UserService', '$scope', '$location']; 
     function accountController(ApiService, $rootScope, UserService, $scope, $location) { 
      $scope.accountDetailsBody = {}; 
      var vm = this; 
      vm.userUpdate = userUpdate; 

      initController(); 
      function initController() { 
       loadCurrentUser(); 
      } 

      function userUpdate() { 
       console.log(vm.user); 
      } 

function loadCurrentUser() { 
      $scope.data = {'email': $rootScope.globals.currentUser.username}; 
      UserService.GetByUsername($scope.data).then(function (response) { 
       if (response.success) { 
        $scope.accountDetailsBody = response.user[0]; 
       } else { 
        $location.path('/'); 
       } 
       //vm.user = user; 
      }); 
     } 
     } 

    })(); 
+0

显示控制器 – Sajeetharan

+0

这是我的控制器:D –

+0

是什么样的代码这!!!!你确定这个控制器与这些输入有关吗? – Maher

回答

0

不需要在这里设置的值。 你可以用NG-模型直接绑定值输入文本框

尝试用这种

控制器

(function() { 
     'use strict'; 
     angular 
       .module('app') 
       .controller('accountController', accountController); 
     accountController.$inject = ['ApiService', '$rootScope', 'UserService', '$scope', '$location']; 
     function accountController(ApiService, $rootScope, UserService, $scope, $location) { 

      var vm = this; 
      vm.accountDetailsBody = {}; 
      vm.userUpdate = userUpdate; 

      initController(); 
      function initController() { 
       loadCurrentUser(); 
      } 

      function userUpdate() { 
       console.log(vm.user); 
      } 

function loadCurrentUser() { 
      $scope.data = {'email': $rootScope.globals.currentUser.username}; 
      UserService.GetByUsername($scope.data).then(function (response) { 
       if (response.success) { 
        vm.accountDetailsBody = response.user[0]; 
       } else { 
        $location.path('/'); 
       } 
       //vm.user = user; 
      }); 
     } 
     } 

    })(); 

HTML

<input type="text" ng-model="vm.accountDetailsBody.phoneNumber" name="phoneno" id="phoneno" class="form-control"> 
+0

感谢兄弟它的工作 –

+0

如果它的工作,那么你可以检查正确和upvote这个答案。 –

0

您应该使用value="accountDetailsBody.phoneNumber"而不是value="{{accountDetailsBody.phoneNumber}}"

由于{{binding}}是一种方式绑定..和ng-mode="binding"是双向绑定。

+0

仍然相同的错误 –

+0

清楚地解释你的问题,你需要什么 – jeeva

0

不要在html标签上使用value属性,你可以将ng-model值equels赋值给controller中的值。

<input type="text" data-ng-model="vm.user.phoneno" name="phoneno" id="phoneno" class="form-control"> 

在控制器:

this.user.phoneno=accountDetailsBody.phoneNumber 
+0

请问你可以请电话如何定义控制器中的用户? –

+0

初始化this.user = {} – Ash