jQuery在调用点燃ui过滤网格方法时无法在初始化错误之前调用方法

时间:2014-08-25 17:14:05

标签: angularjs infragistics ignite-ui

我试图在infragistics上调用一个过滤方法点燃ui网格,从他们的小提琴示例中引用。似乎在他们的小提琴上表现正常但不在我的angularjs应用程序上。你可以在这里找到小提琴 - http://jsfiddle.net/40xgtcry/

在我的角度js应用程序中,我使用一些虚拟数据初始化角度指令中的网格,然后我通过调用igGridFiltering方法进行操作。

define(['directives/directives', 'northwind'],
    function(directives) {
        directives.directive('gridView', function () {
            return {
                restrict: 'EA',
                scope: true,
                link: function (scope) {
                    scope.$on("InventoryDataReady", function  (){
                           // $( '#' + scope.gridSettings.targetId ).igGrid(scope.gridSettings);
                        $('#' + scope.gridSettings.targetId).igGrid({
                            autoGenerateColumns: false,
                            columns: [
                                { headerText: "Employee ID", key: "EmployeeID", dataType: "number" },
                                { headerText: "First Name", key: "FirstName", dataType: "string" },
                                { headerText: "Last Name", key: "LastName", dataType: "string" },
                                { headerText: "Birth Date", key: "BirthDate", dataType: "date" },
                                { headerText: "City", key: "City", dataType: "string" },
                                { headerText: "Postal Code", key: "PostalCode", dataType: "string" }
                            ],
                            dataSource: northwind,
                            responseDataKey: "results",
                            features: [
                                {
                                    name: "Responsive",
                                    enableVerticalRendering: false,
                                    columnSettings: [
                                        {
                                            columnKey: "EmployeeID",
                                            classes: "ui-hidden-phone"
                                        },
                                        {
                                            columnKey: "PostalCode",
                                            classes: "ui-hidden-phone"
                                        }
                                    ]
                                },
                                {
                                    name: "Filtering",
                                    type: "local",
                                    mode: "advanced"
                                }
                            ]
                        });
                        $('#' + scope.gridSettings.targetId).igGridFiltering("filter", ([{fieldName: "FirstName", expr: "Nancy", cond: "equals", logic: "OR"}]));

                    });
                }
            };

        });
    });

网格呈现正常,但过滤方法调用产生以下错误 - '错误:在初始化之前无法调用igGridFiltering上的方法;试图调用方法'过滤器'

2 个答案:

答案 0 :(得分:4)

对于遇到此问题的用户,请注意网格过滤的infragistics api参考不准确。在他们的示例中,他们在div上初始化他们的网格 -

<div id="gridFiltering"></div>

然而,事实证明,由于某种原因,除非您将网格连接到表,否则jquery过滤小部件不会初始化。

<table id="gridFiltering"></table>

他们似乎对igniteui网格的其他示例执行此操作,但不在网格过滤的api参考上执行此操作。

答案 1 :(得分:0)

所有igGrid功能都在igGrid的表上初始化。因此,在div还是table上初始化网格会有所不同。如果在table上初始化网格,则可以直接调用过滤功能,例如,在顶级元素上。否则你需要在桌子上调用它。

$('#' + scope.gridSettings.targetId + "_table").igGridFiltering(...);