我有一个使用BackboneJS的Web应用程序。在这个应用程序中,我有一个 LayoutView.js 文件,其中有一个Backbone View(称为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(),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 中。怎么做到这一点..?
答案 0 :(得分:0)
实例化Backbone视图的语法是new View(options)
,其中options
是具有键值对的Object
。
要将集合传递给您的视图,您可以像这样实例化它:
new MyLayout({
collection : this.configData
});
在您的观点中,this.collection
会引用您的configData
集合。