4

フィールドをname,value属性でバインドしています。しかし、快適ではありません。

input(name='user[name]', value='#{user.name}')

ノックアウト.js に似たデータ バインディングが必要ですが、クライアント (従来のモバイル デバイス) に JavaScript をロードする必要はありません。次のコードのようなもの:

 input(databind='username[value]')
4

1 に答える 1

2

knockout.jsの能力の大部分は、「双方向バインディング」であり、DOM要素の変更とイベントを検出し、それらをモデルに反映します。この部分は、javascriptをロードせずに実行することはできません。

したがって、クライアントに送信するhtmlを生成するときに、何らかの形式の一方向バインディングについて質問していると思います。

これはあなたがどんな利益を求めているのか不思議に思います。それは単に異なるスタイルのコーディングの好みですか?

Knockout.jsのデータバインディングは、特定の範囲の使用シナリオを便利にするために、それぞれが特定の目的に合わせて調整された「バインディング」の拡張可能なセットとして提供されます。ノックアウトのforeachまたはrepeatバインディングは、たとえば、リストやテーブルの生成に便利です。私にとって、ノックアウトの最大の強みは、特定のニーズに合わせて新しいバインディングを簡単に作成できることです。

ここで価値があるのは、いくつかのアイデアです...順不同です。

  1. 翡翠のミックスインとブロックを使用して、一般的な使用シナリオに適合するいくつかの単純な再利用可能なバインディングを定義できる場合があります。
  2. サーバー側の環境に適合する他のテンプレートライブラリを調べて、jadeよりも優れたものがあるかどうかを確認します。
  3. 拡張メカニズム(EJSフィルター、Mustacheラムダ、JSPカスタムタグ)を備えたテンプレートライブラリを使用すると、使用シナリオで頻繁に使用されるバインディングを作成して再利用できます。

おそらく最善の方法は、必要なメリットについてより具体的にすることです。それはここでいくつかのより良い反応を刺激するかもしれません。

于 2012-07-15T09:50:32.247 に答える