我试图弄清楚如何填充ng表并应用params的总值。似乎有些例子几乎显示了我正在做的事情 - 但不完全是这样,而且总数从未设定过。
$scope.tableParams = new NgTableParams({page: 1, count: 25},
{
counts: [],
getData: function(params)
if (CompaniesView.ViewInitialized)
return CompaniesView.RetrieveCompanies($scope, $http, function ()
{
params.total($scope.RequestFilter.TotalCompanies);
return $scope.TableParams.data;
});
}
});
我的RetrieveCompanies
函数检索数据 - 并在完成时调用回调函数。此时我的印象是我可以设置params.total
但不起作用。我看到示例正在做类似的事情,除非他们直接执行jQuery API操作。我不知道为什么这不起作用。我想任何时候设置总数会导致表分页控件更新 - 但它似乎必须在detData调用中完成。但是如果你正在进行异步调用,我们怎么能在调用中设置总数,因为在异步完成之前它不会有数据 - 这意味着
getData调用已经完成。
可能在这里遗漏了一些概念 - 但在jQuery或角度方面我不是专家。
彼得
更新
检索公司职能
RetrieveCompanies: function (scope, http,callback)
{
scope.IsLoading = true;
var Data =
{
AuthoirzationType: TokenRetrieval.SessionAuth,
SessionId: activeSession
};
var tokenRequest =
{
params: Data
};
performVeilabilityTokenRetrieval(http, tokenRequest,
function (response)
{
if (true)
{
if (!response.HasError)
{
scope.RequestFilter.State = scope.selectedState.Value
scope.RequestFilter.regionsearch = scope.selectedRegion.id;
scope.RequestFilter.checkadminStaff = scope.selectedAdmin.value;
//tableParams
scope.RequestFilter.Page = scope.tableParams.page();
scope.RequestFilter.PageCount = scope.tableParams.count();
var config =
{
headers:
{
Authorization: 'Bearer ' + response.RequestToken
},
params: scope.RequestFilter
}
http.get(CompaniesView.Companies_api_urls.loadCompaniesRequest, config)
.then(
function (response)
{
scope.RequestFilter.TotalCompanies = response.data.companieslistTotal;
scope.TableParams.data = response.data.companies;
if (callback != null) callback();
},
function (data, status, headers, config) //error
{
scope.IsLoading = false;
}
);
}
else
{
scope.request.requestToken = null;
//CreateExpenseView.PrepareRESTResults(data.RestResults);
}
}
else
{
scope.request.requestToken = null;
scope.request.error = data.replace(/\"/g, "");
}
});
}
答案 0 :(得分:0)
确定;终于找到了什么错。 ng-table getData操作需要返回promise。我的函数没有被配置为延迟的承诺,一旦我意识到这一点,我就为我的数据检索做了必要的修改以返回一个承诺。一个重点 - 当我用一个时间包裹我的电话时 - 我完成了一个完成 - 而getData正在运行一个当时(来自承诺)。一旦这些变化到位,分页(总)操作就会起作用。
彼得