首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >智能表:以编程方式设置页面

智能表:以编程方式设置页面
EN

Stack Overflow用户
提问于 2017-04-30 14:40:53
回答 1查看 1.6K关注 0票数 2

我使用的智能表,并希望跳转到一个特定的页面,一旦控制器被创建和表被显示。

我找到了在堆栈溢出上以编程方式执行这个这里的代码片段:

代码语言:javascript
运行
复制
angular.element( $('#pagination') ).isolateScope().selectPage(pageNumber);

“分页”是我的智能表分页div的HTML id。在控制器退出之前,我不能调用它,因为isolateScope返回“未定义”。因此,为了确保表/页已经完全创建,我想在几毫秒后将其称为表/页。

selectPage从我的自定义分页开始工作,如果我从页面底部的一个按钮调用它,但是如果它是从计时器调用的话,它就能工作。我已经将源代码跟踪到智能表selectPage()和pipe()函数中,我看不到两者之间的区别--其中一种有效,而另一种则不起作用。

参见柱塞:按一个按钮,它将像预期的那样跳转到第5页。按另一个按钮设置一个3s定时器,这个定时器应该跳到第2页,然后什么都不会发生.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-01 07:53:30

显然,有一个更好的方式与智能桌从‘外部’沟通。

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

代码语言:javascript
运行
复制
<body ng-controller="mainCtrl" st-table="displayed">

然后,我们可以创建一个指令,要求插件的控制器并使用它的功能:

代码语言:javascript
运行
复制
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) 
              }
            })
        }
    };
});

参见此普朗克

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43707604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档