Angularjs ng 模型无法输入 [文本])

Angularjs ng-model not working input[text])

我有一个来自数据库的循环数据,这很好用,值在输入字段中,但是当我想在单击 angular return 后读取此值时,我:

Object {newName: undefined, newEmail: undefined}

而且我不知道为什么。请帮忙。

HTML 代码:

<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);

在您的 ng-repeat 代码中,您显示了 users 的每个元素,并且在 tabletr 中显示了另一个元素的下方。当您想访问您正在编辑的元素时,您需要将该 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>

代码

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

您需要为函数提供您要评估的 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
  }
}

在您的 ng-click 中传递 user 模型,使其变为 ng-click="checkData(user)"

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

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