gpt4 book ai didi

angularjs - ngTable 中 getData() 函数的确切用途是什么

转载 作者:行者123 更新时间:2023-12-01 13:51:00 25 4
gpt4 key购买 nike

我正在使用 ngTable在一个大项目中。在表参数中发送的 getData 函数的确切目的是什么?

vm.tableParams = new ngTableParams({
page: 1, // show first page
count: 10 // count per page
}, {
total: data.length, // length of data
getData: function ($defer, params) {
$defer.resolve(data.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});

我猜 data 是我的 Controller 中的一个对象数组,并且无法像 dataTables 那样在我的 DOM 中找到该数据。我还看到了一个造成混淆的$data对象。

奖励:为什么需要这个 slice() 东西?

最佳答案

getData 方法的目的是检索数据并将其传递给 ngTable 进行渲染。它应该根据选定的过滤器、排序等(您为此使用 params 对象)获取/加载应该显示在当前页面上的行。

加载数据时,假设使用 ajax 请求,您应该使用准备好的行数组解析传递给 getData 函数的 promise 对象。

在上面的例子中,data 数组是一个局部变量,所以不需要发出 ajax 请求来加载它(这只是为了演示),所以你可以简单地将它传递给 promise。还执行额外的切片以模拟分页,就像它来自已经切片的服务器一样。

通常 getData 会像这样使用:

getData: function ($defer, params) {
$http.get('/accounts/', {params: {page: params.page()}}).then(function(response) {
$defer.resolve(response.data);
});
}

关于angularjs - ngTable 中 getData() 函数的确切用途是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31605875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com