Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 根据复选框选择显示或隐藏表格中的列_Angularjs_Angularjs Directive_Ngtable - Fatal编程技术网

Angularjs 根据复选框选择显示或隐藏表格中的列

Angularjs 根据复选框选择显示或隐藏表格中的列,angularjs,angularjs-directive,ngtable,Angularjs,Angularjs Directive,Ngtable,我有一个有很多列的数据表,所以需要滚动,这不是很方便用户。我试图实现一个复选框,用户可以根据标题选择他们想要查看的列。我怎样才能做到这一点 HTML: <div class="col-sm-9 col-sm-offset-3 col-lg-10 col-lg-offset-2 main"> <div class="row"> <div class="col-md-12"> <div class="widget w

我有一个有很多列的数据表,所以需要滚动,这不是很方便用户。我试图实现一个复选框,用户可以根据标题选择他们想要查看的列。我怎样才能做到这一点

HTML:

<div class="col-sm-9 col-sm-offset-3 col-lg-10 col-lg-offset-2 main">
 <div class="row">
        <div class="col-md-12">
            <div class="widget widget-table action-table" style="overflow:auto">
                <!-- /widget-header -->
                <div class="widget-content table-container" ng-controller="getTalentController">
                        <table ng-table="talentsList" show-filter="true" class="table table-striped table-bordered" style="font-size: smaller;text-align:center">
                            <tr ng-repeat="talent in data">
                                <td data-title="'#'"  style="width:5px">{{ $index+1 }}</td>
                                <td data-title="'Employee ID'" sortable="'employeeNo'" filter="{ 'employeeNo': 'text' }" style="width:50px">
                                    {{talent.employeeNo}}
                                </td>
                                <td data-title="'Name'" sortable="'fullName'" filter="{ 'fullName': 'text' }">
                                    {{talent.fullName}}
                                </td>
 <td data-title="'From'" sortable="'inDate'" filter="{ 'inDate': 'text' }">
                                    {{talent.inDate}}
                                </td>
                                <td data-title="'Till'" sortable="'outTill'" filter="{ 'outTill': 'text' }">
                                    {{talent.outTill}}
                                </td>
                                <td data-title="'Account'" sortable="'account'" filter="{ 'account': 'text' }">
                                    {{talent.account}}
                                </td>
<td data-title="'State'" sortable="'state'" filter="{ 'state': 'text' }" ng-class="{greenStyle : talent.state == 'Available', blueStyle : talent.state == 'Billed', redStyle: talent.state == 'Blocked'}">
                                    <div style="border:solid">{{talent.state}}</div>

                                </td>
                                <td data-title="'Remarks'" ng-click="showRemarks[$index]=!showRemarks[$index]" style="width:70px">
                                    <span ng-hide="showRemarks[$index]" class="ellipses" style="width:inherit">{{talent.remark}} </span>
                                    <span ng-show="showRemarks[$index]"> {{talent.remark}} </span>
                                </td>
                                <td data-title="'Resume'">
                                    <a ng-click="downloadResume(talent.id)" class="btn btn-default" data-placement="top" data-toggle="tooltip" data-original-title="resume"><svg class="glyph translucent floppy-disk"><use xlink:href="#translucent-floppy-disk"></use></svg></a>
                                </td>
                                <td data-title="'Reserve'">
                                    <a ui-sref="reservation.edit({id: talent.id})" class="btn btn-default" data-placement="top" data-toggle="tooltip" data-original-title="save"><svg class='glyph stroked hand-cursor'><use xlink:href='#stroked-hand-cursor' /></svg></a>
                                </td>
                            </tr>
                        </table>
                    </div>
                <!-- /widget-content -->
            </div>
            <!-- /widget -->
        </div>
        <!-- /span12 -->
    </div>
    <!-- /row -->
</div>
App.js:

myApp.factory('dataTable', ['$filter', 'ngTableParams', '$rootScope', function ($filter, ngTableParams, $rootScope) {

    var factoryDefinition = {
      render: function($scope, config, componentId, data) {
          if (!config) config = { filter: { 'fullName': $rootScope.mysearch } };

        var config1 = angular.extend({}, {page:1, count:8}, config)

        $scope[componentId] = new ngTableParams(config1, {
            total: data.length, // length of data
            getData: function ($defer, params) {
            // organize filter as $filter understand it (graph object)
                var filters = {};
                var val = $rootScope.mysearch;
                var key = "fullName";
                $rootScope.mysearch = "";

                angular.forEach(params.filter(), function (val, key) {
                    var filter = filters;
                    var parts = key.split('.');
                    for (var i = 0; i < parts.length; i++) {
                        if (i !== parts.length - 1) {
                            filter[parts[i]] = {};
                            filter = filter[parts[i]];
                        }
                        else {
                            filter[parts[i]] = val;
                        }
                    }
                });
                // use build-in angular filter
                var filteredData = params.filter() ?
                        $filter('filter')(data, filters) :
                        data;
                var orderedData = params.sorting() ?
                        $filter('orderBy')(filteredData, params.orderBy()) :
                        data;
                params.total(orderedData.length); // set total for recalc pagination
                $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
                $scope.pageNumber = params.page();
                $scope.itemsPerPage = params.count();
            }
        }); 


      }
    }

    return factoryDefinition;
  }
]);
myApp.factory('dataTable',['$filter','ngTableParams','$rootScope',函数($filter,ngTableParams,$rootScope){
var factoryDefinition={
呈现:函数($scope、config、componentId、data){
如果(!config)config={filter:{'fullName':$rootScope.mysearch}};
var config1=angular.extend({},{page:1,count:8},config)
$scope[componentId]=新的ngTableParams(配置1{
总计:data.length,//数据长度
getData:函数($defer,params){
//将过滤器组织为$filter了解它(图形对象)
变量过滤器={};
var val=$rootScope.mysearch;
var key=“fullName”;
$rootScope.mysearch=“”;
angular.forEach(params.filter(),函数(val,key){
var过滤器=过滤器;
var parts=键。拆分('.');
对于(变量i=0;i
CSS文件:

我在网上看到一个链接,并试图实现它,但由于
ngTableDemos
而导致喷油器错误。我尝试的链接是:

myApp.factory('dataTable', ['$filter', 'ngTableParams', '$rootScope', function ($filter, ngTableParams, $rootScope) {

    var factoryDefinition = {
      render: function($scope, config, componentId, data) {
          if (!config) config = { filter: { 'fullName': $rootScope.mysearch } };

        var config1 = angular.extend({}, {page:1, count:8}, config)

        $scope[componentId] = new ngTableParams(config1, {
            total: data.length, // length of data
            getData: function ($defer, params) {
            // organize filter as $filter understand it (graph object)
                var filters = {};
                var val = $rootScope.mysearch;
                var key = "fullName";
                $rootScope.mysearch = "";

                angular.forEach(params.filter(), function (val, key) {
                    var filter = filters;
                    var parts = key.split('.');
                    for (var i = 0; i < parts.length; i++) {
                        if (i !== parts.length - 1) {
                            filter[parts[i]] = {};
                            filter = filter[parts[i]];
                        }
                        else {
                            filter[parts[i]] = val;
                        }
                    }
                });
                // use build-in angular filter
                var filteredData = params.filter() ?
                        $filter('filter')(data, filters) :
                        data;
                var orderedData = params.sorting() ?
                        $filter('orderBy')(filteredData, params.orderBy()) :
                        data;
                params.total(orderedData.length); // set total for recalc pagination
                $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
                $scope.pageNumber = params.page();
                $scope.itemsPerPage = params.count();
            }
        }); 


      }
    }

    return factoryDefinition;
  }
]);