1

BackboneJSを使用するWebアプリケーションがあります。このアプリケーションには、バックボーンビュー(LayoutViewと呼ばれる)があるLayoutView.jsファイルがあります。LayoutViewには、他のビューを呼び出す他の関数(メソッド)があります。LayoutViewの初期化関数でいくつかのデータをフェッチしていますが、これと同じデータ(モデル)を別のビューで取得して作業(更新/削除)する必要があります。以下は、LayoutViewからmyViewにデータを渡す方法です。

var LayoutView = Backbone.View.extend({
    el: $("#mi-body"),
    initialize: function () {
        var that = this;
        this.ConfigData = new Configurations(); //Configurations is a collection
        this.ConfigData.fetch({ 
            success: function () {
                alert("success");
            },
            error: function () {
                alert("error");
            }
        });
        this.render();
        Session.on('change:auth', function (session) {
            var self = that;
            that.render();

        });
    },

    render: function () {
        // other code

    },

    events: {
        'click #logout': 'logout',
        'click #divheadernav .nav li a': 'highlightSelected'
    },

    myView: function () {
        if (Session.get('auth')) {
            this.$el.find('#mi-content').html('');
            this.options.navigate('Myview');
            return new MyLayout(this.ConfigData);
        }
    }
});

それでも、myViewで現在のデータ/モデル/コレクション(どちらの用語が正しいかわかりません)としてこのデータを「取得」/アクセスし、 Backboneの「 model.save()、model」を使用して作業する方法がわかりません。 destroy() "メソッド。また、編集/削除が発生するたびに、ConfigDataのデータを変更し、更新をユーザーに表示されるhtmlに反映させる必要があります。

以下はMyViewからのコードです:

    var MyView = Backbone.View.extend({

    tagName: 'div',

    id: "divConfigurationLayout",

    initialize: function (attrs) {
        this.render();

    },
    render: function () {
        var that = this;

    },

    events: {
        "click #Update": "update",
        "click #delete": "delete"
    },

    update: function(){
//code for updating the data like model.save...
},

delete: function(){
//code for deleting the data like model.destroy...
}
});

これで、渡したデータは初期化関数のattrsにあります。これを行う方法..?

4

1 に答える 1

0

バックボーンビューをインスタンス化するための構文は、new View(options)キーと値のペアを持つwithです。optionsObject

コレクションをビューに渡すには、次のようにインスタンス化します。

new MyLayout({
    collection : this.configData
});

あなたの見解の中で、あなたのコレクションthis.collectionを参照します。configData

于 2013-01-16T14:04:46.247 に答える