現在JQGridを使用しているWebアプリケーションがありますが、コード編成を改善するためにBackbone.jsを導入しようとしています。私がやろうとしているのは、コレクションを使用してサーバーからデータを取得し、定義されたJQGridにJSON情報を追加することですが、それを機能させることができません。私の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(...)」行のコメントを外すと、すべてが機能し始めることです。