4

У меня есть данные из базы данных в цикле, и это отлично работает, и значение находится в поле ввода, но когда я хочу прочитать это значение после нажатия на угловую, верните мне:Angularjs ng-model not working input [текст])

Объект {NEWNAME не определено, NEWEMAIL не определено}

и я не знаю почему. Пожалуйста, за помощью.

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> 

CONTROLLER КОД:

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

ответ

2

Внутри вашего ng-repeat кода вы отобразили каждый элемент users & вы показываете одно под другим внутри tr из table. Если вы хотите получить доступ к элементу, который вы редактируете, вам необходимо передать этот объект user методу checkData, чтобы вы могли получить доступ к этому конкретному конкретному пользователю.

Markup

<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); 
}; 
+0

спасибо за вашу помощь. Это работа – Kaker

+0

@Kaker Рад помочь вам .. Спасибо :) –

+0

еще один вопрос: как читать эти данные в файл PHP, потому что $ data = json_decode (file_get_contents ("php: // input")); $ userName = $ data-> newName; $ userEmail = $ data-> newEmail; return me Внутренняя ошибка сервера (500) Попытка получить свойство не-объекта – Kaker

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 
    } 
} 
1

В вашем ng-click передать user модель таким образом, что она становится ng-click="checkData(user)"

Затем переписать код контроллера, как:

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

@ Pankaj был быстрее:] –