【发布时间】:2014-10-02 02:12:57
【问题描述】:
我正在关注Slickgrid的例子
我正在使用 ajax 将数据加载到可观察数组中
$.ajax({
url: "../Service/Data",
type: "PUT",
contentType: 'application/json',
processData: false,
data: JSON.stringify(Id),
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
},
success: function (allData) {
var mappedData= $.map(allData, function (item) {
return new TableData(item);
});
self.MyArray(mappedData);
}
});
然后在我的视图模型中是这样做的
grid = new Slick.Grid("#myGrid", self.MyArray(), columns, options);
在我看来,我会这样做
<div id="myGrid" style="width:300px;height:420px;"></div>
但我在我的网格中得到低于输出。它不显示数据而是显示对象
这里有什么问题?
更新1
这是我的列定义
var columns = [
{ id: "title", name: "Title", field: "title" },
{ id: "duration", name: "Duration", field: "duration" },
{ id: "percent", name: "% Complete", field: "percent" }
];
var options = {
enableCellNavigation: true,
enableColumnReorder: false
};
这就是我的 obs 数组在实际代码中的样子
更新 2 这是我的表格数据
function TableData(data) {
this.id= ko.observable(data.id);
this.duration= ko.observable(data.duration);
this.percent= ko.observable(data.percent);
}
我从服务器获取 json 数据
【问题讨论】:
-
self.MyArray() 返回什么?
-
@Gaetano self.MyArray() 返回数据数组
-
@Tanner 当我按照你说的方式进行操作时,我会得到预期的错误功能
-
@Gaetano 我得到了带有方法和原型的数组。在这个方法里面我有我的专栏。我不知道它被称为什么样的对象。可能是这个原因?
-
这可能是原因 - 你能告诉我 MyArray() 的定义吗
标签: jquery html knockout.js slickgrid