智能表转到所选项目

时间:2016-01-05 14:13:17

标签: javascript angularjs pagination html-table smart-table

我正在使用smart-table分页。还有一个默认的选定项目(isSelected=true)。

我想要实现的是分页转到所选项目所在表格的实际页面。

我尝试从分页中获取$scope,以访问selectPage()函数。但我无法获得$ scope。

angular.element($('#pagination')).scope()

返回控制器$ scope

angular.element($('#pagination')).isolatedScope()

返回null

修改

这是plnkr

是否可以从指令中获取范围?我希望从this directive

获取范围

这是表格html:

<table st-table="table" st-pipe="pipeFunction" st-safe-src="rowCollection" class="table table-striped">
    ...
    <tfoot>
        <tr>
            <td colspan="5">
                <div id="pagination" st-pagination="" st-items-by-page="8" st-template="/scripts/angular/pagination.custom.html"></div>
            </td>
        </tr>
    </tfoot>
</table>

2 个答案:

答案 0 :(得分:1)

所以我已经管理了它,也使用了默认选择。

<强>的javascript:

GetDllVersion  "C:\data\Some.exe" $R0 $R1 ;the two values were read during compilation

IntOp $R2 $R0 / 0x00010000
IntOp $R3 $R0 & 0x0000FFFF
IntOp $R4 $R1 / 0x00010000
IntOp $R5 $R1 & 0x0000FFFF
MessageBox MB_OK '$R2.$R3.$R4.$R5'

<强> HTML:

app.directive('stDefaultSelection', function () {
    return {
        require: 'stTable',
        restrict: 'A',
        scope: {
            selection: '=stDefaultSelection',
        },
        link: function link(scope, element, attrs, controller) {

            scope.$watch('selection', function (newValue, oldValue) {
                var selectionMode = 'single',
                    pagination = controller.tableState().pagination;

                //controller.select(newValue, selectionMode); => causes second call of function

                var rows = controller.getFilteredCollection(),
                    indexOfRow = rows.indexOf(newValue),
                    finalPage = Math.ceil(rows.length / pagination.number);

                if (indexOfRow > -1) {
                    controller.slice(finalPage * pagination.number, pagination.number);
                }
            });
        }
    };
});

答案 1 :(得分:0)

啊我觉得我发现了问题。

而不是:

angular.element($('#pagination')).isolatedScope()

尝试使用(没有d):

angular.element($('#pagination')).isolateScope()