1

フロントエンドで Bootstrap と JQuery を使用する Rails/HAML サーバーの作業を開始しました。すべてのページはサーバー サイド (HAML) で生成され、JQuery をあちこちで使用して、ユーザーがアクションを実行するときに Web 2.0 の感覚を与えます。

サーバーからデータを取得するために AJAX 呼び出しを行った後、いくつかの場所で複雑な HTML が JavaScript で生成されています。つまり、テーブルがある場合、ユーザーはテーブルの行に対してアクションを実行できます。そのようなアクションの 1 つは、テーブルから行を削除し、別の行を取得することです。別の行を取得する場合は、サーバーから JSON データを取得し、AJAX が成功した場合は、JSON データを使用して新しい行 (HTML) を生成し、テーブルにアニメーション化します。

これに関する私の問題は、テーブルの行がかなり複雑で、サーバー (HAML) と JavaScript の 2 つの場所で生成されることです。つまり、テーブルを少し変更する (css クラスを追加する、または行の外観を変更する) たびに、サーバーとクライアントの 2 つの場所でコードを変更する必要があります。

これはレガシー システムであり、私は自分が持っているフレームワークに固執しています (人々に別のシステムを導入するよう説得できるかもしれません)。これを修正するにはどうすればよいですか?

最善の方法は、サーバーに常に HTML を生成させることです。IE は、新しい行を追加する必要があるときに JSON データを返す代わりに、新しい行の HTML を返します。そうすれば、同じ HAML ファイル サーバー側を使用して、最初の行と新しい行を生成できます。

これは私にとってまったく新しいことですが、これが最善/唯一の方法ですか?

前もって感謝します。

4

1 に答える 1

0

私が見つけた最良の方法は、サーバー側でhamlパーシャルを生成して返すことです。

haml :some_partial, :layout => false

次にjqueryの成功で:

function(data) {
  html = $(data);
  ...
}
于 2013-03-25T20:39:42.000 に答える