gpt4 book ai didi

javascript - 智能表 : set page programmatically

转载 作者:行者123 更新时间:2023-11-29 19:04:51 25 4
gpt4 key购买 nike

我正在使用智能表格,并希望在创建 Controller 并显示表格后跳转到特定页面。

我发现这段代码以编程方式执行此操作 here在计算器上:

angular.element( $('#pagination') ).isolateScope().selectPage(pageNumber);

“pagination”是我的 Smart Table 的分页 div 的 HTML id。在 Controller 退出之前我不能调用它,因为 isolateScope 返回“未定义”。所以我想我会在几毫秒后调用它以确保表格/页面已完全创建。

selectPage 从我的自定义分页开始工作,如果我从页面底部的按钮调用它,它会工作,但如果它是从计时器调用,则不会。我已将源代码追溯到智能表 selectPage() 和 pipe() 函数,但我看不出区别 - 一个有效,另一个无效。

参见 Plunker :按下一个按钮,它会按预期跳转到第5页。按另一个按钮设置一个 3 秒计时器,它应该跳转到第 2 页,但没有任何反应......

最佳答案

显然,有一种更好的方式可以从“外部”与 smart-table 进行通信。

如果将 st-table 指令移动到外部 div(在本例中为主体):

<body ng-controller="mainCtrl" st-table="displayed">

然后我们可以创建一个需要插件 Controller 并使用其功能的指令:

app.directive('handlePagination', function ($timeout) {
return {
require: '^stTable',
restrict: 'AE',
transclude: true,
template: '<button class="btn btn-success btn-xs" ng-click="" ng-transclude></button>',
scope: {
goToPage: '@',
delay: '@'
},
link: function link(scope, element, attrs, controller) {
scope.delay = scope.delay || 0;
element.on('click', function() {
var page = scope.goToPage;
if (page > 0 && page <= controller.tableState().pagination.numberOfPages) {
$timeout(function() {
controller.slice((page - 1) * controller.tableState().pagination.number, controller.tableState().pagination.number);
}, scope.delay)
}
})
}
};
});

看这个plnkr

关于javascript - 智能表 : set page programmatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43707604/

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