Ng-table: рдХреНрдпрд╛ рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдЯреЗрдмрд▓ рд╣реЗрдбрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╕рднреА рдХреЛ рдирд╣реАрдВ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 3 рдорд╛рд░реНрдЪ 2015  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: esvit/ng-table

рдирдорд╕реНрддреЗ,
рдХреНрдпрд╛ рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдЯреЗрдмрд▓ рд╣реЗрдбрд░ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╕рднреА рдХреЛ рдирд╣реАрдВ? рдореИрдВ рдПрдХ рдХрд╕реНрдЯрдо рдкрд╣рд▓реЗ рдХреЙрд▓рдо (рдПрдХ рдлреИрдВрд╕реА рдЪреЗрдХрдмреЙрдХреНрд╕ рдкрд╣рд▓рд╛ рдХреЙрд▓рдо) рдХреЗ рд╕рд╛рде рдПрдХ рдХреНрд░рдордмрджреНрдз рддрд╛рд▓рд┐рдХрд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЕрднреА рдЫрдБрдЯрд╛рдИ рдореЗрдВ рд╕рднреА рддрд░реНрдХ tbody> tr рдореЗрдВ рд╣реИрдВред рдореЗрд░реЗ рдкрд╛рд╕ thead > th рдирд╣реАрдВ рд╣реИ рдФрд░ рдореЗрд░рд╛ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

<tbody>
  <tr ng-repeat="foo in fooList">
    <td data-title="'Name'" class="" data-sortable="'name'">

рдФрд░ рдЕрдм рдореЗрд░рд╛ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ

<thead>
<!--custom first column header-->
<!--boilerplate header-->
  <th ng-class="{
    'sort-asc': tableParams.isSortBy('name', 'asc'),
    'sort-desc': tableParams.isSortBy('name', 'desc')
    }"
    ng-click="tableParams.sorting({'name' : tableParams.isSortBy('name', 'asc') ? 'desc' : 'asc'})">
    <div>Name</div>
  </th>
<!--the rest of the column definitions which are similar to the previous one-->
</thead>
<tbody>
  <!--custom first column data-->
  <tr ng-repeat="foo in fooList">
    <td data-title="'Name'" class="" data-sortable="'name'">

рдореИрдВрдиреЗ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд┐рдпрд╛: http://bazalt-cms.com/ng-table/example/18
рдХреНрдпрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХреЙрд▓рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ рдореЗрд░реЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реЛрддрд╛ рдерд╛) рдФрд░ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдореЗрдВ рдХрд╕реНрдЯрдо рд╕рд╛рдорд╛рди рд╣реЛрддрд╛ рд╣реИ? рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЙрд▓рдо рд╣реИрдВ рдФрд░ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕рд╛рдорд╛рди рдореЗрд░реЗ рдХреЛрдб рдХреЛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ DRY рдирд╣реАрдВ рд╣реИред

рд╣реЗрдбрд░ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХрд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢ рдмрдирд╛рдирд╛ рдПрдХ рдХрд╛рдордХрд╛рдЬ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдПрдХ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рд╣реИред

рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж!

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рд╛рдБ рддреБрдо рдХрд░ рд╕рдХрддреЗ рд╣реЛред

рдЗрд╕ рддрд░рд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╕реНрдЯрдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдВ:

<script id="expandAllHeader" type="text/ng-template">
  <span class="expandable" ng-click="toggleExpandAll()">+ / -</span>
</script>

рдлрд┐рд░ рдЕрдкрдиреЗ рд╡рд┐рд╢реЗрд╖ рдХреЙрд▓рдо рдХреЛ рдЗрд╕ рддрд░рд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:

<td header="'expandAllHeader'">...</td>

... рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛:

<td data-title="'whatever'">...</td>

рд╕рднреА 6 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рдБ рддреБрдо рдХрд░ рд╕рдХрддреЗ рд╣реЛред

рдЗрд╕ рддрд░рд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╕реНрдЯрдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдВ:

<script id="expandAllHeader" type="text/ng-template">
  <span class="expandable" ng-click="toggleExpandAll()">+ / -</span>
</script>

рдлрд┐рд░ рдЕрдкрдиреЗ рд╡рд┐рд╢реЗрд╖ рдХреЙрд▓рдо рдХреЛ рдЗрд╕ рддрд░рд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:

<td header="'expandAllHeader'">...</td>

... рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛:

<td data-title="'whatever'">...</td>

рдзрдиреНрдпрд╡рд╛рдж @ рдЬреЗрд░реЗрдореА-рд╡рд╛рд▓реНрдЯрди! рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдПрдХ рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдмрд╕ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ: рдкреАрдЖрдИ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрдЧрд╛ рдХрд┐ рдПрдирдЬреА-рдЯреЗрдмрд▓ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд░рд╣рд╛ рд╣реИ рддрд╛рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХреВрдВред https://github.com/esvit/ng-table/search?utf8=%E2%9C%93&q=type%3D%22text%2Fng-template%22

рдореИрдВ рдПрдХ рдЪрд░ рдХреЛ рдЕрдВрджрд░ рдХреИрд╕реЗ рдкрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдореЗрд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ:

<script id="expandAllHeader" type="text/ng-template">
  <div>{{this.title}}</div>
  <div>{{this.sorting}}</div>
</script>
<td data-title="'Name'" data-sortable="'name'" header="'expandAllHeader'"></td>

рдЖрдк рдЬреЛ рдХреБрдЫ рднреА рд╣реЗрдбрд░ рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдЙрд╕реА рджрд╛рдпрд░реЗ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреИрд╕реЗ рдЖрдкрдХреА рдмрд╛рдХреА рдЯреЗрдмрд▓, рдмреЙрдбреА рд▓реВрдк рдХреЗ рдмрд╛рд╣рд░ред https://github.com/esvit/ng-table/blob/master/src/ng-table/header.html#L16 рдФрд░ https://docs.angularjs.org/api/ng/directive/ngInclude рджреЗрдЦреЗрдВред

this.whatever рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ whatever рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрдкрдХреЛ рдзрдиреНрдпрд╡рд╛рдж!
рднрд╛рд╡реА рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП :P рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛:

<script id="expandAllHeader" type="text/ng-template">
  <div>{{column.title()}}</div>
  <div>{{column.sortable()}}</div>
</script>
<table ng-table="tableParams">
  <tbody>
    <td data-title="'First Name'" data-sortable="'firstname'" header="'expandAllHeader'"></td>
    <td data-title="'Last Name'" data-sortable="'lastname'" header="'expandAllHeader'"></td>

рд╣рд╛рдБ рддреБрдо рдХрд░ рд╕рдХрддреЗ рд╣реЛред

рдЗрд╕ рддрд░рд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╕реНрдЯрдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдПрдВ:

<script id="expandAllHeader" type="text/ng-template">
  <span class="expandable" ng-click="toggleExpandAll()">+ / -</span>
</script>

рдлрд┐рд░ рдЕрдкрдиреЗ рд╡рд┐рд╢реЗрд╖ рдХреЙрд▓рдо рдХреЛ рдЗрд╕ рддрд░рд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ:

<td header="'expandAllHeader'">...</td>

... рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛:

<td data-title="'whatever'">...</td>

рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХред рдЕрднреА рднреА рдЙрдкрдпреЛрдЧреА !!!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕