我有一个kendo网格,可以在Internet Explorer(10和11)中正常工作。但是,它在firefox中根本没有加载(使用最新版本和一些以前的版本进行测试)。
在一个JavaScript文件中,让我们调用它fileA
,我有一个ajax请求调用,然后我从另一个文件(fileB
)调用一个函数来传入JSON来自我的请求的对象。
fileA
:
//the json object retrieved from my ajax call:
var obj = {name: "John Doe"};
//call to fileB
Test(obj);
fileB
采用闭包的形式:
var Test = (function() {
var myfunction = function(obj){
showGrid(obj);
}
function showGrid(obj){
var datasource;
if(obj != null){
datasource = new kendo.data.DataSouce({
data: obj,
pageSize:10
});
} else{
datasource = new kendo.data.DataSouce({
data: [];
});
}
$("#grid").kendoGrid({
dataSource: datasource
height: 850,
groupable: false,
sortable: true,
pageable: {
refresh: true,
pageSizes: true,
buttonCount: 15
},
columns: [{
field: "name",
title: "Name",
width: 200
}]
});
}
})();
我创造了这个小提琴:http://jsfiddle.net/savxdnt3/1/
我在哪里出错,如何在firefox中使用?任何帮助将不胜感激。
答案 0 :(得分:0)
您的代码存在以下问题:
data: [];
等无论如何,这是一个简单的方法:
function showGrid(obj){
var datasource;
if(obj != null) {
datasource = new kendo.data.DataSource({ // fixed spelling
data: obj,
pageSize:10
});
} else {
datasource = new kendo.data.DataSource({ //fixed spelling
data: [] //removed semi-colon
});
}
$("#grid").kendoGrid({
dataSource: datasource,
height: 850,
groupable: false,
sortable: true,
pageable: {
refresh: true,
pageSizes: true,
buttonCount: 15
},
columns: [{
field: "name",
title: "Name",
width: 200
}]
});
}
obj = [{name: "John Doe"}] // pass in array, not object;
showGrid(obj);
这是一个更新的小提琴,使用揭示模块模式:http://jsfiddle.net/savxdnt3/2/
这应该使事情更具可读性。将网格内容放在一个文件中,并在任何其他代码中将其用作Test
(或重命名)