1

我有一个使用 BackboneJS 的 Web 应用程序。在这个应用程序中,我有一个LayoutView.js文件,其中有一个主干视图(称为 LayoutView)。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()”模型来处理它。销毁() ”方法。此外,每当发生编辑/删除时,应修改 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

实例化 Backbone 视图的语法是new View(options)where optionsis an Objectwith key-value 对。

要将集合传递给您的视图,您可以像这样实例化它:

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

在您看来,this.collection将引用您的configData收藏。

于 2013-01-16T14:04:46.247 回答