Backbone.js 主干何时将逻辑构建到视图中,而不是拥有单独的视图
所以我知道在主干网中有很多方法可以做事情,但是因为我没有在这里的很多人的丰富经验,所以我想要关于最佳方法的建议 我有一个基本的CRUD应用程序,其中我有一个用于添加数据的表单和一个用于编辑数据的表单,它们本质上是相同的。并且实际上附加到同一个DOM元素 因此,我可以将这两个表单包含到一个视图中,并提供适当的模板,这取决于该视图是否具有模型。大概是这样的:Backbone.js 主干何时将逻辑构建到视图中,而不是拥有单独的视图,backbone.js,backbone-views,Backbone.js,Backbone Views,所以我知道在主干网中有很多方法可以做事情,但是因为我没有在这里的很多人的丰富经验,所以我想要关于最佳方法的建议 我有一个基本的CRUD应用程序,其中我有一个用于添加数据的表单和一个用于编辑数据的表单,它们本质上是相同的。并且实际上附加到同一个DOM元素 因此,我可以将这两个表单包含到一个视图中,并提供适当的模板,这取决于该视图是否具有模型。大概是这样的: var AddEditView = Backbone.View.extend ({ el: $("#add"), template: $("e
var AddEditView = Backbone.View.extend ({
el: $("#add"),
template: $("editTemplate").html();
render: function() {
if (this.model) {
var theTmp = _.template(this.template)
this.$el.html(theTmp(this.model.toJSON()));
}
else {
var theTmp = _.template($("#addTemplate").html());
this.$el.html(theTmp);
}
},
}));
我认为这是可行的,但我可能会遇到一些棘手的问题,任何事件(即事件被绑定两次)
或者我可以创建两个完全独立的视图,它们将附加到同一个dom元素,并根据应用程序状态来回切换(多行代码)
在这种情况下,你们会推荐什么。视图中的逻辑越多越好,还是代码行越多,视图中的逻辑越少?假设无论是创建新模型还是编辑现有模型,字段都相同,我建议只使用一个视图和一个模板。实例化视图时,如果要创建新模型,只需实例化一个新模型并将其传递给视图即可。否则,传递现有模型
var AddEditView = Backbone.View.extend ({
render: function() {
var theTmp = _.template(this.template)
this.$el.html(theTmp(this.model.toJSON()));
},
someSaveEvent: function() {
this.model.save(); // This will POST if the model isNew() or PUT otherwise
}
});
var model = new Model(); // If you're creating a new model
var addEditView = new AddEditView({
model: model
});
我也在考虑这个问题,但是如果我在模型上有默认值,模板将填充这些默认值,对吗?