2012-03-03 7 views
1

Backbone.jsでフォームを生成しようとしています。Backbone.jsリバースバインディング(UIへのモデル)

ここで私は今やっています。

フォームの各入力要素には、ModelViewがあります。したがって、通常のようにmodelにはtypevaluenameplaceholderなどの属性が含まれています。バックボーン慣例により

私はUI

に反映Modelへの変更を得ている。しかし、私はあること、逆も起こること をしたいときに、モデルの属性value時に反映させるために持っていinput要素の変化のvalue 。私は、thisのようなものがモデルを更新するビューでupdateメソッドを書くことを考えています prototype1.js

:私は今だのはここ

です。それを行うより良い方法はありますか?

PS:

これは、任意の一般的なアドバイスが答えでも一緒に歓迎された多くのstackoverflow search: backbone.js reverse model binding

を助けていません。

答えて

1

backbone.modelbindingについて聞いたことがありますか?ビューは、それがモデルを更新変更後 それはモデルの変更と、それはその目的のために特にライブに持って来られた、Derickベイリーによって作成されたプラグインの

、それはビュー、 を更新します。

私はそれを以前に使っていましたが、まっすぐ進むフォームのためには非常にうまく動作します。 今のところあなたのフォームでは動作しない理由はわかりませんが、試してみてくださいあなたの構造が適合しているかどうかを確認してください。

初期化は非常に簡単です:

基本的な単純な結合である
SomeView = Backbone.View.extend({ 
    render: function(){ 
    // ... render your form here 
    $(this.el).html("... some html and content goes here ... "); 

    // execute the model bindings 
    Backbone.ModelBinding.bind(this); 
    } 
}); 

、 あなたはそれよりもさらにmutchを行くことができます:

あなたはそれがすでに(レンダリングされません表示するモデルをバインドすることができますページ) 複数のモデルプロパティにバインドすることができます フォーム内のデータバインドスタイル属性を使用してバインドできます。 モデルのイベントにバインドできます

オプションがたくさんあるので、それを見て、あなたのアプリに合っているかどうかを見てください。

+0

Backbone.ModelBindingはひどいので放棄されました。 – oLinkWebDevelopment

+0

私は過去半年にバックボーンで開発されていませんでしたが、それを認識していませんでしたが、モデルバインディングを放棄した後に代替ポップアップがありましたか? – Sander

1

Modelの状態を更新するViewの問題はありません。実際に私はこれが非常に適切な方法であると考えていますViewユーザーの対話を管理していますと通常はユーザーの対話の結果はモデルの状態を変更します。

は私が提案したいと言った:

  1. はあなたのビューのDOM要素にを変更バインドするevents Viewプロパティを使用します。
  2. イベントが発生したときに呼び出されるビュー上のメソッドを宣言し、はこのメソッドにモデルの状態を変更します。