我在阅读关于Backbone的文章时发现的共识似乎是:不要在视图中存储东西,将其存储在模型中,然后让视图监听模型上的更改。跟踪视图状态信息的推荐方式是什么?
如果我们谈论的情况是,我们已经有了明显的模型 - 视图配对,这非常棒。例如,您有一个用户模型和一个UserView视图。很明显,你在视图上设置了一个模型属性,它监听模型的变化。
然而,假设我有一个视图,显示了一个东西的列表,并且有两个按钮可以在“列表视图”和“网格视图”之间切换。这是我在应用程序和网站中看到的一个非常常见的约定。我是否想要“列表视图”或“网格视图”与模型/集合本身无关;这个观点本身似乎非常具体。
起初我只是尝试使用完全像模型的视图:设置属性,绑定事件'change:propertyName'
,然后使用someView.set('propertyName')
等等来更新它......但这不起作用。
一边想着如何处理这个,我以为我记得看到这样的事情之前:
var MyView = Backbone.View.extend({
...
model: Backbone.Model(),
...
});
因此,与有,比方说,一个的usermodel ..我们只是有一些“无类型”的模式。或者我想,我实际上可以创建一个新的课程,也许只是为了这个,我称MyViewModel
...虽然我没有看到一个理由。
这允许我像我想要的那样绑定到更改事件并使用someView.model.set(...)
设置视图数据。
所以我的问题是:这是人们在Backbone中为视图状态做的常见事情吗?或者,还有更好的方法?谢谢。