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

Javascript Angular.js-ng repeat未显示更新的数组,javascript,jquery,angularjs,datatables,Javascript,Jquery,Angularjs,Datatables,当我使用AJAX请求时,我得到了从数组中完美读取数据的代码。然而,当我将一个对象推送到数组中时,ng repeat不会呈现新行,我必须刷新页面,然后获取发送到服务器的数据 为什么会这样? 谢谢 Javascript HTML {{x.id} {{x.client}} {{x.errorMessage} {x.simpleRes} {{x.fullRes} {{x.reason} 这是因为您同时使用jQuery和Angular。不要那样做。曾经Angular不知道jQuery在做什么,jQuer

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

为什么会这样? 谢谢

Javascript HTML

{{x.id}
{{x.client}}
{{x.errorMessage}
{x.simpleRes}
{{x.fullRes}
{{x.reason}

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


同样,不要使用
document.getElementById('full-fix').value
。你在向后走。Angular从数据生成DOM,因此您不需要选择DOM元素来读取其值,因为该值已经存在于您的数据中。

更新文档。使用范围应用作为快速修复。在我看来,这不是解决问题的方法,但它会很快解决你的问题。在我的手机上,如果我没有忘记,我会在以后更新此评论,并提供更多细节和最佳实践。目前,谷歌搜索scope apply将对您大有帮助。

更多关于您的原因的信息
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
        })
    }
<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>