Kendo Grid + Pager:无法调用方法'值'在初始化之前的kendoDropDownList

时间:2013-07-20 08:46:45

标签: grid kendo-ui pager

我制作了SPA,并在每次点击菜单元素后替换#content。 第一次加载网格时,它正常工作。当我单击菜单元素后,我收到此错误消息:在初始化之前无法调用kendoDropDownList的方法'value'。 如果我不使用寻呼机,它的工作正常。 有人可以帮帮我吗?

以下是代码:

var obuDS = new kendo.data.DataSource({
    transport: {
        read: {
            url: function(data) {
                return api_url_v1+"obus/user/"+$.cookie('user')+"?ssid="+$.cookie('ssid');
            },
            dataType: "json",
            complete: function(response,type) {
            }
        }
    },
    pageSize: 10
});

webcontrol.route("/obus", function() {
    $("#content").html(obus({}));
    $("#obus").kendoGrid({
        dataSource: obuDS,
        sortable: true,
        filterable: true,
        pageable: {
            refresh: true,
            pageSizes: true
        },
        columns: [
            { field: "name",        title: "Name",      width: 50, template: "<a href=\"\\#/obu/#:obu#/0\">#:name#</a>" },
            { field: "obu",         title: "OBU",   width: 70},
            { field: "country",     title: "Country",       width: 30 },
            { field: "eurocode",    title: "EURO",          width: 30 }
        ]
    });
});

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,是的,有一个修复它,基本上你只需要在重定向之前销毁网格......

解决这个问题的最佳方法是使用&#34;解决&#34;在$ routeProvider

$routeProvider.when('/' + nPageData.id, {
                    controller: nPageData.id + "Controller",
                    template: vm.getPageHTML(nPageData),
                    resolve:{
                        "kendogridfix":function($location){
                            angular.element("[kendo-grid]").each(function(idx,kGrid){
                                var dataObj=angular.element(kGrid).data();
                                for(mData in dataObj)
                                {
                                    if(angular.isObject(dataObj[mData]))
                                    {
                                        if("destroy" in dataObj[mData])
                                        {
                                            dataObj[mData].destroy();
                                        }
                                    }
                                }
                            })
                        }
                    }
                });

希望这会有所帮助......