Я новичок в AngularJS и SmartTable... В настоящее время я пытаюсь заставить SmartTable иметь переключатель отображения/скрытия для столбцов. Насколько я понимаю, SmartTable этого не делает, поэтому я использую функцию отображения/скрытия ng-Grid... пытаясь следовать этому решению: как скрыть/показать столбец ng-grid извне?
Когда я реализовал это решение, мои столбцы не отображаются.
Как настроить отображение столбцов SmartTable при первоначальной настройке? Я думаю, это то, чего мне не хватает...
Вот мой js:
var app = angular.module('myApp', ['smart-table', 'ngGrid']);
app.controller('paginationCtrl', ['$scope', function (scope) {
var nameList = ['Brian', 'Bob', 'Marie', 'Jennifer', 'Frank'],
familyName = ['Smith', 'Miller', 'Patel', 'Jefferson', 'Mendez'];
...
$scope.toggleCol= function(i) {
$scope.gridOptions.$gridScope.columns[i].toggleVisible()
}
scope.itemsByPage=15;
scope.rowCollection = [];
for (var j = 0; j < 200; j++) {
scope.rowCollection.push(createRandomItem());
}
}]);
и вот мой html:
<body ng-controller="paginationCtrl">
<p>Smart Table Example</p>
<input type="button" value="First Name" ng-click="toggleCol(0)" />
<table class="table table-striped" st-table="rowCollection">
<thead>
<tr>
<th st-sort="firstName">first name</th>
<th st-sort="lastName">last name</th>
<th st-skip-natural="true" st-sort="balance">balance</th>
<th>email</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="row in rowCollection">
<td>{{row.firstName}}</td>
<td>{{row.lastName}}</td>
<td>{{row.balance}}</td>
<td>{{row.email}}</td>
</tr>
</tbody>
<tfoot>
<tr>
<td class="text-center" colspan="5">
<div st-displayed-pages="7" st-items-by-page="itemsByPage" st-pagination=""></div>
</td>
</tr>
</tfoot>
</table>
You can see my entire setup on my plunker example:
http://plnkr.co/edit/6F8NsDdgaWranTXeIQuV?p=preview
Спасибо!!