2

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

这是代码:

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 }
        ]
    });
});
4

1 回答 1

0

我遇到了同样的问题,是的,有一个解决方法,基本上你只需要在重定向之前破坏网格......

解决这个问题的最好方法是在 $routeProvider 中使用“resolve”

$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();
                                        }
                                    }
                                }
                            })
                        }
                    }
                });

希望这可以帮助...

于 2015-11-09T12:57:19.747 回答