0

バックボーンを使用して、すべてがきれいに分離されたアプリの構築を開始しています。しかし今、私は次の質問があります。ビューまたはモデルのどこにアプリのメインロジックを配置する必要がありますか。たとえば、ボタンにバインドされたビューとモデルがあり、そのボタンをクリックすると作成する必要があります

$.ajax(params)  

私はそれをビューに入れますか、それともビューは次のメソッドを呼び出します:

this.model.doAction(params) 

どれが最良のアプローチだと思いますか?

4

1 に答える 1

0

たとえばevents、次の形式のビューでプロパティを定義できます。ここで、collapse は、ビューのプロパティとして定義された関数になります。次に、このコールバック関数に ajax リクエスト コードを記述します。{"event selector": "callback"}{"click .collapse": "collapse"}

また、何かが欠けていない限り、「ビューとモデルをボタンにバインドする」というのは、正しいバックボーンのようには聞こえません。代わりに、ビューの 1 つのインスタンスに関連付けられたモデルの 1 つのインスタンスを考える必要があります。モデル インスタンスの属性が変更されるたびに、モデルchangeイベントがトリガーされます。ビュー関数をこのイベントにバインドして、モデルの変更がビューに反映されるようにすることができます。ここに簡単な例があります

var Book = Backbone.Model.extend({
   // ...
});

var BookView = Backbone.View.extend({

    initialize: function () {
        this.model.bind('change', this.render, this);
    },

    render: function () {
        // here, make changes to the dom as per changes in model
    }
});

モデルをビュー インスタンスに関連付けるには、新しいビュー オブジェクトをインスタンス化するときにそれを渡すことができます。

var book = new Book({
   title: "A great book"       
});

var view = new BookView({model: book});

view.model.set('author', 'AGreatAuthor');

set 関数呼び出しは change イベントを発生させ、ビューの render 関数を呼び出します。

完全な例については、注釈付きの Todos アプリの例のソースを参照してください。

于 2012-12-08T03:45:06.967 に答える