Невозможно получить скрытое поле Значение через ng-model

70
5

Я новичок в Angular js, и я борюсь за доступ к скрытому значению поля через ng-model. В основном я использую Modal для редактирования. Вот мой код для контроллера:

$scope.update = function(){
$http({
method:'POST',
url:'http://localhost:8000/api/v1/edit',
data: {id: $scope.editId , name: $scope.edit_name, email: $scope.edit_email, password: $scope.edit_password}
}).then(function(response){
$scope.updated_form_data_list = response.data;
});
};
});

Я пытаюсь установить идентификатор для каждой записи с помощью javascript:

<tbody ng-repeat="form_data in form_data_list"> //Displaying records from DB inside the Table
<tr>
<td>@{{ form_data.name }}</td>
<td>@{{ form_data.email }}</td>
<td>@{{ form_data.password }}</td>
<td><Button type="button" onclick="setEditId(this.id)" data-toggle="modal" data-target="#modal_content" id="@{{form_data.id}}" ><span class="glyphicon glyphicon-pencil"></span></Button></td>
</tr>
</tbody>

И я установил значение для скрытых через javascript, вот он:

<script type="text/javascript"> //setting the value of hidden field with id
function setEditId(id){
document.getElementById('editId').value=id;
}
</script>

У меня есть ng-model как editId в приведенном ниже коде:

<div class="modal fade" id="modal_content" role="dialog">
...
<input type="hidden" name="id" id="editId" ng-model="editId">
...
<button ng-click="update()">Submit</button>

Когда я нажимаю кнопку "Отправить", я могу публиковать другие значения, кроме идентификатора. Предложите мне решение для этого. Заранее благодарю!

спросил(а) 2017-12-04T18:04:00+03:00 2 года, 10 месяцев назад
1
Решение
57

поскольку вы используете js для установки значения editID ng-model не обновляется

$scope.editId = id;

изменить значение вашего ввода

ответил(а) 2017-12-04T19:54:00+03:00 2 года, 10 месяцев назад
69

простой трюк... Вместо того, чтобы вызывать javascript для установки Id, установите это через контроллер, используя ng-click.

$scope.storeId=function(id){
$scope.id=id;
}

И вызвал его через

<Button type="button" ng-click="storeId(form_data.id)" data-toggle="modal" data-target="#modal_content">
<span class="glyphicon glyphicon-pencil">

ответил(а) 2017-12-07T11:07:00+03:00 2 года, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема