2015-04-28 14 views
6

Używam bardzo dobrej biblioteki tabeli Smart-table do wyświetlania moich danych.Smart-table - Ustawienie strony z kodem

Używam niestandardowego szablonu stronicowania. Chciałbym jednak móc ustawić stronę 1 z kodu. Czytałem o dyrektywie st-pipe, którą ona eksponuje, ale wydaje się, że będę musiał ponownie napisać cały kod filtrowania/paginacji/sortowania, jeśli to zaimplementuję.

Jestem po prosty sposób programowo ustawić stronę z zewnątrz dyrektywy st-pagination że istnieje w moim stołu tfoot

<table st-table="displayedCollection" st-safe-src="tags" class="table table-hover"> 
    <tbody> 
     <tr st-select-row="tag" st-select-mode="single" ng-repeat="tag in displayedCollection" ng-click="click(tag)"> 
      <td> 
       <span editable-text="tag.name" e-placeholder="enter a display name..." e-name="name" e-form="editableForm" e-required> 
       {{tag.name}}</span> 
      </td> 
      <td> 
       <span editable-text="tag.path" e-placeholder="enter actual value to be used..." e-name="path" e-form="editableForm" e-required> 
       {{tag.path}}</span> 
      </td> 
      <td> 
       <form editable-form shown="newItem == tag" onshow="onShow()" name="editableForm" oncancel="oncancel(newItem)" onaftersave="saveForm(tag)"> 
        <!-- EDIT --> 
        <button type="button" class="btn btn-sm btn-default" ng-click="editableForm.$show()" tooltip="Edit" tooltip-placement="left" ng-hide="editableForm.$visible"> 
         <i class="fa fa-pencil-square-o fa-lg"></i> 
        </button> 
       </form> 
      </td> 
     </tr> 
    </tbody> 
    <tfoot> 
     <tr> 
      <td colspan="1" class="text-left"> 
       <div st-template="app/partials/pagination.html" st-pagination="" st-items-by-page="pager.itemsOnPage"></div> 
      </td> 
      <td colspan="1"> 
       <div class="btn-group btn-group-sm pull-right ng-scope"> 
        <button type="button" ng-class="{'active':pager.itemsOnPage==5}" ng-click="pager.itemsOnPage=5" class="btn btn-default">5</button> 
        <button type="button" ng-class="{'active':pager.itemsOnPage==10}" ng-click="pager.itemsOnPage=10" class="btn btn-default">10</button> 
        <button type="button" ng-class="{'active':pager.itemsOnPage==20}" ng-click="pager.itemsOnPage=20" class="btn btn-default">20</button> 
        <button type="button" ng-class="{'active':pager.itemsOnPage==30}" ng-click="pager.itemsOnPage=30" class="btn btn-default">30</button> 
       </div> 
      </td> 
     </tr> 
    </tfoot> 
</table> 

chciałabym móc ustawić stronę w sekcjach od <form> Dyrektywa onshow.

Czy ktoś wie, czy jest to możliwe? Wielkie dzięki.

Odpowiedz

9

Aby ustawić numer strony tabeli kątowej z kodu, należy użyć funkcji selectPage() st. Pagination.

Gdzie twój HTML posiada element paginator takiego:

<div id="pagerId" st-pagination="" st-items-by- ... 

można użyć kodu takiego w swojej dyrektywie

function setPage(pageNumber) 
{ 
    angular 
     .element($('#pagerId')) 
     .isolateScope() 
     .selectPage(pageNumber); 
} 

Trzeba mieć zainstalowany użyć jQuery $. Mam pomysł z ostatniego przykładu na: http://lorenzofox3.github.io/smart-table-website/

+1

.isolateScope() zwracając 'undefined' i kiedy robię .scope() zwraca ten sam zakres co kontroler, w którym wykonuję funkcję – NinjaOnSafari

+0

Pracowałem po raz pierwszy dla mnie . Dzięki! –

+0

@NinjaOnSafari otrzymał to samo, ale został naprawiony po dodaniu biblioteki jQuery. Może to może ci pomóc. –

Powiązane problemy