Angularjs ng-model not working input [text])

时间:2015-10-21 14:55:48

标签: javascript angularjs angularjs-ng-repeat angularjs-ng-click

我在循环中有来自数据库的数据,这很有用,值在输入字段中,但是当我想在点击角度后读取此值时返回我:

  

Object {newName:undefined,newEmail:undefined}

我不知道为什么。请求帮助。

HTML CODE:

<tr ng-repeat="user in users">
    <td><input type="text" ng-model="user.name" name="user.name" ></td>
    <td><input type="text" ng-model="user.email" name="user.email" ></td>
    <td><button ng-click="checkData()">Click</button></td>
</tr>

控制器代码:

 $scope.user = {};
 $scope.checkData = function () {
   var data = {
      newName: $scope.user.name,
      newEmail: $scope.user.email
   };
 console.log(data);

3 个答案:

答案 0 :(得分:2)

ng-repeat代码中,您显示了users&amp;的每个元素。您在tr的{​​{1}}内显示了另一个。当您想要访问正在编辑的元素时,您需要将该table对象传递给user方法,以便您可以访问该特定特定用户。

<强>标记

checkData

<强>代码

<tr ng-repeat="user in users">
    <td><input type="text" ng-model="user.name" name="user.name" ></td>
    <td><input type="text" ng-model="user.email" name="user.email" ></td>
    <td><button ng-click="checkData(user)">Click</button></td>
</tr>

答案 1 :(得分:1)

ng-click传递user模型,使其成为ng-click="checkData(user)"

然后,将控制器代码重写为:

$scope.user = {};
$scope.checkData = function (user) {
  console.log(user);
};

答案 2 :(得分:0)

您需要为函数提供要评估的DOM的数据,即当前用户:

您可以使用

<tr ng-repeat="user in users">
  <td>{{user.name}}</td>
  <td>{{user.email}}</td>
  <td><button ng-click="check(user)"></button></td>
</tr>



$scope.check = function (thing) {
  var currentUser = {
    name: thing.name,
    email: thing.email
  }
}