Angularjs ng表格数据未在页面加载时显示
我已经将ngTable集成到我的mean.io堆栈中,在页面加载时填充表格时遇到了问题。如果我选择其中一个列标题,数据就会显示出来,表也会按照公布的方式工作 这是我的htmlAngularjs 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'
<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();
};