gpt4 book ai didi

javascript - Angular.js - ng-repeat 未显示更新的数组

转载 作者:行者123 更新时间:2023-11-29 16:38:09 25 4
gpt4 key购买 nike

当我使用 AJAX 请求时,我有代码可以完美地从数组中读取数据。然而,当我将对象推送到数组时,ng-repeat 不会呈现新行,我必须刷新页面才能获取发送到服务器的数据。

为什么要这样做?谢谢

Javascript

function processError() {
var responseCode = 404;
var error = {};
error["client"] = document.getElementById('client').value;
error["errorMessage"] = document.getElementById('error-message').value;
error["simpleRes"] = document.getElementById('simple-fix').value;
error["fullRes"] = document.getElementById('full-fix').value;
error["reason"] = document.getElementById('reason').value;

var errorJson = JSON.stringify(error);

$.ajax({
url: "../ErrorChecker/rest/error",
type: "POST",
data: errorJson,
contentType: "application/json"
})
.done(function (data, statusText, xhr, displayMessage) {
$('.form').hide();
responseCode = xhr.status;
reloadData(data);
});

function reloadData(data) {
if (responseCode == 200) {
processPositiveResponse(data);
} else {
$('#negative-message').show(1000);
}
}
}

function processPositiveResponse(data) {
$('#positive-message').show(1000);
updateTable(data);
$('#errorTable').DataTable().destroy();
setupTable();
clearInputs();
console.log($scope.controller.errors);
}

function updateTable(data) {
$scope.controller.errors.push({
"id": data,
"client": document.getElementById('client').value,
"errorMessage": document.getElementById('error-message').value,
"simpleRes": document.getElementById('simple-fix').value,
"fullRes": document.getElementById('full-fix').value,
"reason": document.getElementById('reason').value
})
}

HTML

<tbody>
<tr ng-repeat="x in dataCtrl.errors">
<td class="collapsing">
<div class="ui toggle checkbox">
<input type="checkbox">
<label></label>
</div>
</td>
<td style="display: none">{{ x.id }}</td>
<td>{{ x.client }}</td>
<td>{{ x.errorMessage }}</td>
<td>{{ x.simpleRes }}</td>
<td>{{ x.fullRes }}</td>
<td>{{ x.reason }}</td>
</tr>
</tbody>

最佳答案

那是因为您同时使用了 jQuery 和 Angular。不要那样做。曾经。 Angular 不知道 jQuery 在做什么,jQuery 也不知道 Angular 在 DOM 中生成什么。解决方案:删除 jQuery 并使用 Angular 自己的 $http 服务。

同样,不要使用document.getElementById('full-fix').value。你正在让 Angular 倒退。 Angular 从数据生成 DOM,因此您不需要选择 DOM 元素来读取它们的值,因为该值已经在您的数据中。

关于javascript - Angular.js - ng-repeat 未显示更新的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49432902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com