1

おそらくこれは少し後ろ向きに思えるかもしれませんが、Rivets.js にバインドされたビューがあり、そのビューで初期化時にモデルにデータを入力したいと考えています。

ユースケースは、サーバー側のレンダリングを使用して、リベットのデータ属性を含むスニペット (ビュー) を返すことです。そのため、サーバーからクライアントに JSON は返されません。

ここで、「編集」を押すと、ユーザーはコンテンツを「編集」モードにして、自由に編集を開始できます。(contenteditableを使用していますが、これはここでは範囲外だと思います)。

では、init のビューからモデルに値が入力されていることを確認するにはどうすればよいでしょうか。

4

3 に答える 3

0

この質問は古いですが、まだ回答が受け入れられていないため、次のようになります。

プリロード構成を無効にする必要があるため、リベットは、バインディング時にモデルにあるもので入力にあるものを上書きしません。preloadData=falseこれは、グローバル ( rivets.configure(...)) またはビュー スコープ ( の 3 番目のパラメーター)のいずれかの構成を介して行うことができますrivets.bind(...)

バインド後、ビューを公開する必要があります (値をモデルにプルします)。また、呼び出しを介してオブザーバーを設定する必要がありsync()ます。そうしないと、バインドされたメソッドがトリガーされません。

前の回答と同じ例を使用します。

var view = rivets.bind($('#auction'), { auction: auction }, {
  preloadData: false
});

view.publish();
view.sync();
于 2018-09-26T16:53:33.170 に答える
0

Rivets Web サイトの例から (「rivetBinding」に割り当てます)

var view = rivets.bind($('#auction'), {auction: auction});

これを行うrivetBinding.publish();と、'publishes = true' を持つすべてのバインディングのビューからの値でモデルがブートストラップされます。

于 2013-02-24T12:49:55.060 に答える