我有一个当前使用 JQGrid 的 Web 应用程序,但我正在尝试引入 Backbone.js 来改进代码组织。我想要做的是使用集合从服务器获取数据,然后将 JSON 信息添加到我定义的 JQGrid 中,但我无法让它工作。我的 JQGrid 是这样定义的:
var tareasHumanasTable = $("#grillaTH").jqGrid({
datatype: 'local',
height: 'auto',
colNames:[ colNames...],
colModel:[ colModel...]
}
我的模型和集合是这样定义的:
window.TareaHumana = Backbone.Model.extend();
window.TareaHumanaCollection = Backbone.Collection.extend({
model: TareaHumana,
url: "bandejaTareas/buscarTH"
});
我有一个按钮,单击该按钮可启动服务器通信。现在正在这样做:
$(function(){
$("#botonBuscar").bind('click',function(){
var tareaHumanaList = new TareaHumanaCollection();
tareaHumanaList.fetch({data: $("#formBandejaTareas").serializeObject()});
//alert("tareaHumanaList.toJSON(): " + tareaHumanaList.toJSON());
tareaHumanaList.each(function(tareaHumana, i){
//alert("tareaHumana.toJSON(): " + tareaHumana.toJSON());
tareasHumanasTable.jqGrid('addRowData', (i + 1), tareaHumana.toJSON());
});
该代码根本不起作用。使用 Firebug,我验证了服务器以正确的格式发送数据,但代码不起作用。最奇怪的是,当我取消注释“alert(...)”行时,一切都开始工作了。