Angularjs ng表格数据未在页面加载时显示

Angularjs ng表格数据未在页面加载时显示,angularjs,ngtable,mean.io,Angularjs,Ngtable,Mean.io,我已经将ngTable集成到我的mean.io堆栈中,在页面加载时填充表格时遇到了问题。如果我选择其中一个列标题,数据就会显示出来,表也会按照公布的方式工作 这是我的html <table ng-table="tableParams" class="table"> <tbody ng-repeat="p in $data"> <tr id="tr{{p._id}}" ng-class-odd="'odd'" ng-class-even="'even'

我已经将ngTable集成到我的mean.io堆栈中,在页面加载时填充表格时遇到了问题。如果我选择其中一个列标题,数据就会显示出来,表也会按照公布的方式工作

这是我的html

<table ng-table="tableParams" class="table">
    <tbody ng-repeat="p in $data">
    <tr id="tr{{p._id}}" ng-class-odd="'odd'" ng-class-even="'even'">
        <td class="rowTd" data-title="'Task Code'"   sortable="'task_code'">{{p.task_code}}</td>
        <td class="rowTd" data-title="'Task Name'"    sortable="'task_name'">{{p.task_name}}</td>
        <td class="rowTd" ><input type=button id="editRowBtn{{p._id}}" value="edit"
                                  ng-click="setEditId(p._id)"></td>
    </tr>
    <tr ng-show="editId===p._id" ng-if="editId===p._id">
        <td colspan="7" ng-include src="'editRow.html'"></td>
    </tr>
    </tbody>
</table>

我对使用这张表还不熟悉,所以我肯定有一些东西我忽略了。

想为我的问题提供答案,以便帮助其他人。无论何时添加或删除表中的项,都必须重新加载表。由于$save和$remove调用了一个回调函数,所以只需插入以下内容来更新表

    $scope.add = function() {
        if (!$scope.tasks) $scope.tasks = [];

        var task = new GeneralTasks({
            task_code: $scope.task_code,
            trade: $scope.trade,
            task: $scope.task,
            task_name: $scope.task_name
        });

        task.$save(function(response) {
            $scope.tasks.push(response);

            var data = $scope.tasks;
            $scope.tableParams.total(data.length);
            $scope.tableParams.reload();
        });

        this.task_code = this.trade = this.task = this.task_name = '';
    };
首先,我用响应更新$scope列表,然后更新表数据和长度。然后打电话重新加载

如前所述,我这样做是为了$save和$remove。下面是$remove代码

    $scope.remove = function(task) {
        for (var i in $scope.tasks) {
            if ($scope.tasks[i] === task) {
                $scope.tasks.splice(i, 1);
            }
        }

        task.$remove();
        var data = $scope.tasks;
        $scope.tableParams.total(data.length);
        $scope.tableParams.reload();
    };
我注意到,当我在列表中编辑一个名称,然后取消时,该名称不会重置。我想我应该为“取消”操作添加类似的代码,但我很懒,这是我目前最不担心的事情


希望这对其他人有所帮助。

什么是
GeneralTasks.query()
返回的:承诺还是数据数组?它返回数据数组。
    $scope.remove = function(task) {
        for (var i in $scope.tasks) {
            if ($scope.tasks[i] === task) {
                $scope.tasks.splice(i, 1);
            }
        }

        task.$remove();
        var data = $scope.tasks;
        $scope.tableParams.total(data.length);
        $scope.tableParams.reload();
    };