我有以下骨干模型。
var Credential = Backbone.Model.extend({
defaults: {
user: null,
password: null
}
});
我想将此模型绑定到视图。
最佳做法是从路由器实例化Credential
模型并传递给视图
var loginView = new LoginView({ model: new Credential() });
或在initialize
的{{1}}方法中实例化模型。
LoginView
答案 0 :(得分:3)
最佳做法是为视图指定模型,不要让视图创建模型。
从概念上讲,视图是模型的一种表示形式,当您可以有多个视图表示相同的模型时(例如表单和列表)。
这就是为什么保持松散耦合并将模型分配给视图通常是一种更好的模式。
答案 1 :(得分:1)
还有一种方法可以遵循。您可能知道,骨干视图共享来自MVC的Controller任务。因此,您可以将Controller责任从独立抽象中分离出来,就像它在Marionette.js框架中所做的那样。在这种情况下,您将拥有以下工作流程:
1)控制器负责创建和删除视图和模型,获取模型,为视图提供模型。
2)视图侦听模型事件,DOM事件并呈现实际模型数据
3)模型仅负责处理数据