Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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
Javascript Angular JS:获取ng grid的十大内容_Javascript_Angularjs_Ng Grid - Fatal编程技术网

Javascript Angular JS:获取ng grid的十大内容

Javascript Angular JS:获取ng grid的十大内容,javascript,angularjs,ng-grid,Javascript,Angularjs,Ng Grid,我是新手。在ng-grid上工作。该表包含可变数据行。i、 e网格可以有10行或27行,甚至更大。我目前正在定义列defs,如下所示 $scope.gridOptions = { data: 'evnts', enableColumnResize: false, enableRowSelection: false, enableCellSelection: false, enableSorting:true,

我是新手。在ng-grid上工作。该表包含可变数据行。i、 e网格可以有10行或27行,甚至更大。我目前正在定义列defs,如下所示

$scope.gridOptions = { 


        data: 'evnts',
        enableColumnResize: false,
        enableRowSelection: false,
        enableCellSelection: false,
        enableSorting:true,
        multiSelect: false,
        showFilter: false,
        showColumnMenu: false,
        plugins: [new ngGridFlexibleHeightPlugin()],
        selectedItems: $scope.selectedRows,
         //For Impact Column        
         //filterOptions: {filterText: '', useExternalFilter: false},
        afterSelectionChange: function(data) {
            row = $scope.selectedRows[0]
            if (!row) {return;}
            selectedRowFactory.row = row
            $location.path('/event/'+row.id)
        },


    columnDefs: [
                            {field:'rl', displayName:'Importance',sortFn:impSortFn,width:'80px'},
                            {field:'dt', displayName:'Time', width:'57px', cellFilter:'date:\"HH:mm:ss\"',headerClass:'grad1',cellTemplate:'<div class="text-center">{{row.getProperty(\'dt\')|timefilter}}</div>'},
                            {field:'fl', sortable:true, displayName:'Country',width:'60px', 
                                cellTemplate:'<div class="ngCellText text-center" ng-class="col.colIndex()"><span ng-cell-text><img class="flag" src="img/Country_Images/{{row.getProperty(col.field)}}"></img></span></div>',
                                width: '80px',headerClass:'grad1'},
                            {field:'ev', displayName:'Event', width:'******',headerClass:'grad1'},
                            ]      
$scope.gridOptions={
数据:“evnts”,
enableColumnResize:false,
enableRowSelection:false,
enableCellSelection:false,
enableSorting:true,
多选:错,
showFilter:false,
showColumnMenu:false,
插件:[新的ngGridFlexibleHeightPlugin()],
selectedItems:$scope.selectedRows,
//冲击柱
//filterOptions:{filterText:'',useExternalFilter:false},
选择后更改:功能(数据){
行=$scope.selectedRows[0]
如果(!row){return;}
selectedRowFactory.row=行
$location.path('/event/'+row.id)
},
columnDefs:[
{字段:'rl',显示名称:'Importance',sortFn:impSortFn,宽度:'80px'},
{字段:'dt',显示名称:'Time',宽度:'57px',cellFilter:'date:\'HH:mm:ss\',headerClass:'grad1',cellTemplate:'{{row.getProperty(\'dt\'))| timefilter}},
{字段:'fl',可排序:true,显示名称:'Country',宽度:'60px',
单元格模板:“”,
宽度:'80px',头类:'grad1'},
{字段:'ev',显示名称:'Event',宽度:'******',headerClass:'grad1'},
]      
Index.html

  <div class="view" data-ng-view></div>

是否有选项将ng grid的内容限制在前10位?我已经浏览了
limito
功能,但不知道在定义网格选项时是否有相同的功能。请帮助


提前感谢。

您应该在控制器中准备顶部数据,然后告诉ng grid使用准备好的数据

在本例中,我通过按“age”键进行排序,然后将前3个入口拼接到数组
sData
,并将其分配给ng网格,从而获得现有数据的前3个

    var app = angular.module('myApp', ['ngGrid']);

    function sortByKey(array, key) {
        return array.sort(function(a, b) {
            var x = a[key]; var y = b[key];
            return ((x > y) ? -1 : ((x < y) ? 1 : 0));
        });
    }
    app.controller('MyCtrl', function($scope) {
        $scope.myData = [{name: "Moroni", age: 50},
                         {name: "Tiancum", age: 43},
                         {name: "Jacob", age: 27},
                         {name: "Nephi", age: 29},
                         {name: "Enos", age: 34}];
        $scope.sData=sortByKey($scope.myData,'age').splice(0,3)                 
        $scope.gridOptions = { data: 'sData' };
    });
var-app=angular.module('myApp',['ngGrid']);
函数sortByKey(数组、键){
返回array.sort(函数(a,b){
变量x=a[key];变量y=b[key];
回报率((x>y)?-1:((x
通过这种方式,您可以得到一个简化的数据集,该数据集可以通过ng网格排序函数再次排序


这就是您想要的?

我建议您在服务器端执行此操作,这里有一个很好的教程:@user3036342抱歉,这是一个静态页面。在这种情况下,服务器端编程是不可能的。老实说,您的问题有点不清楚。您显示了列定义,并说您想限制行,但接下来您讨论的是网格选项ns功能?我假设您定义了一个包含4列的网格,并且可以返回多行(您的问题中没有包含的数据,也没有html的标记)。如果是这种情况,则ng repeat=“items in items | limito:2”>当使用分页来建立行时,如果不使用服务器端限制数据,是否可以应用您在此处提到的过滤器?即使您回答了这一问题,您的意思是什么?代替排序然后减少功能?或者替代借用的排序功能?或者作为减少的数据集的自定义排序功能有两个任务1-应用
impSortFn
来完成数据数组,而不仅仅是一个字段。2-结果排序的数据需要过滤,因为只需要取出前10个值。无论如何..我已经在后端介绍了它,因为
排序+过滤
有点困难..非常感谢您的帮助..看看这个插件:在sortby.js中使用一个多重排序例程,它将名称按降序排序,然后按升序排序,然后删除前10个值。我很懒,所以我从这里开始使用排序例程:做个好人,为@Felix Kling的出色工作投上一票!根据需要添加更多排序字段。祝你好运!angular也有一个内置的“orderBy”过滤器,因此可以减少为:$filter('orderBy')($scope.myData,'age').splice(0,3);