是在模型内还是在其他地方初始化主干视图?
Do you initialize your Backbone views from within a model or elsewhere?
您是在模型内还是在其他地方初始化您的Backbone视图?
我正试图找出组织模型/视图的最佳方法。让你的模型初始化视图有意义吗?
感谢您的任何信息!
模型
不,你的模型不初始化任何其他MVVM对象。
确保他们只负责定义他们将携带的数据,以及他们将如何持久化这些数据。
var CoolModel = Backbone.Model.extend({
defaults: function() {
return {
coolness: 'extreme',
color: 'red'
};
}
};
var myModel = new CoolModel;
<<h2>视图/h2>你的视图应该包含一个初始化函数,它将被主干自动调用。查看"父":
var CoolView = Backbone.View.extend({
doSomething: function() { ... },
doSomethingElse: function() { ... },
initialize: function() {
this.listenTo(this.model, 'eventA', this.doSomething);
this.listenTo(this.model, 'eventB', this.doSomethingElse);
}
});
AppView
当你实际创建一个视图对象时,你传入它将要绑定到的模型。从技术上讲,这可以发生在代码中的任何地方(但通常在应用程序级视图中):
renderSomething: function(todo) {
var view = new CoolView({model: myModel});
// view.render() ....
}
也就是说,您的应用程序将一个模型和一个视图组合在一起。
虽然这肯定不是一个完整的答案,但我建议您阅读一下Backbone Todos注释文档。
您将看到它们所做的是监听集合上的'add'事件,并在将新模型添加到集合中时从主视图创建新模型的视图。你可以在带注释的文档中的AppView初始化函数中看到。
这也是我为我所有的应用程序做的方式,也是我推荐的。如果需要的话,这种方法还允许您在新模型周围包含更多的逻辑(比如重新呈现一个跟踪集合中模型数量的统计视图)。
相关文章:
- 正在Ajax调用上初始化主干视图
- 如何使用搜索筛选器初始化列表视图
- angularJS视图更新后初始化引导工具提示
- Ember.js - 在车把内初始化的视图中调用方法
- BackboneJS:集合初始化在视图模块中只有一个模型
- 调用 Backbone 内部的外部函数.js的视图初始化方法
- 将模型实例传递到已初始化的主干视图
- 无法初始化主干.js视图
- Backbone.Layoutmanager 尝试初始化视图时出错
- 如何在视图中呈现部分 js 或访问在应用程序/资产中的 js.erb 文件中的控制器操作中初始化的实例变量/方法
- ng视图-如何禁用页面的重新初始化
- JQuery Full Calendar-初始化后编辑日历视图
- 为什么此主干视图未初始化
- JQuery移动列表视图筛选器初始化
- 角度范围数据在更新时不绑定到视图,但在初始化时绑定
- 在Backbone.js中,通过在选项中传递模型来初始化视图和将模型对象作为参数传递有什么区别
- 如何使用.ajax数据初始化knockoutjs视图模型
- tinyMce在第二次访问角局部视图时未初始化
- 集合添加事件在视图初始化时触发
- Backbone:视图初始化时集合为空