我制作了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 }
]
});
});
答案 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();
}
}
}
})
}
}
});
希望这会有所帮助......