【发布时间】:2020-01-22 11:54:50
【问题描述】:
我正在尝试使用 angularjs 从 API 填充数据表,但问题是当我加载页面时,表格已填满,但底部显示“表格中没有可用数据”,如果我尝试排序,过滤器更换 nb。的显示所有数据都消失了,只显示“表中没有可用数据”。
HTML
<table id="example" ng-if="controls" datatable="ng"
class="table table-bordered bordered table-striped table-condensed datatable"
ui-jq="dataTable"
ui-options="dataTableOpt" >
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start Date</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="control in controls">
<td>@{{control.train}}</td>
<td>@{{control.time}}</td>
<td>@{{control.location}}</td>
<td>@{{control.case}}</td>
<td>@{{control.quantity}}</td>
</tr>
</tbody>
</table>
服务
(function () {
var app = angular.module('mainApp');
app.service('MyService', ['$http','$q', function ($http,$q) {
this.getControls = function() {
var def = $q.defer();
$http.get("/api/control")
.then(function(data) {
def.resolve(data);
},function(error) {
def.reject(error);
});
return def.promise;
}
}]);
})();
控制器
(function () {
var app = angular.module('mainApp', ['ui.select2', 'ngAnimate', 'ngSanitize', 'toaster', 'ui.utils', 'ui.bootstrap']);
app.controller('ControlsController', ['$scope', '$filter', '$window', 'MyService', '$http', '$q', '$timeout', function ($scope, $filter, $window, MyService, $http, $q, $timeout) {
$scope.controls = [];
angular.element(document).ready(function () {
MyService.getControls().then(function (result) {
$scope.controls = result.data.data;
});
});
}]);
})();
我尝试输入,ng-if,ng-show,超时,但它不起作用。 只有当我在控制器中声明一个包含所有值的数组时,才会显示该行并且过滤、搜索、工作。 是http请求相关的问题,创建DOM后加载数据但找不到解决办法。
有人可以帮助我吗?
【问题讨论】:
标签: angularjs datatable datatables