I am new to AngularJS and SmartTable ... I am currently trying to get SmartTable to show show / hide for columns. From what I take, SmartTable does not, so I use the show / hide ng-Grid function ... trying to execute this solution: how to hide / show the ng-grid column from the outside?
When I implemented this solution, my columns are not displayed.
How do you set smartTable columns for "show" during initial setup? I think this is what I am missing ...
Here is my 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()); } }]);
and here is my 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 installation on my plunker example:
http://plnkr.co/edit/6F8NsDdgaWranTXeIQuV?p=preview
Thanks!!
source share