我正在尝试使用Backbone js和Marionette的主要细节。如何更改视图的模型?我希望将视图的模型侦听器从旧模型中删除并应用于新模型。同样与模型相关的其他类似的东西。任何人都有一些“changeModel”代码可以干净利落地完成这项工作吗?
答案 0 :(得分:1)
仅仅销毁旧视图并根据不同的模型制作新视图会不会更容易?在这个例子中,我将模型本身传递给ItemViewOptions,在模型上我有一些定义特征......并且由于模型来自服务器,我可以操作View发生的事情。这个用于绑定动态模板,但我想你也可以用事件做一些事情。这将要求你先破坏你拥有的东西,而不是重新绑定一切。
node = Backbone.Model.extend
nodes = Backbone.Collection.extend
model: node
url: ->
Myapp.rooturl + "/api/node"
initialize: (nodes) ->
@fetch()
nodeView = Backbone.Marionette.ItemView.extend
initialize: (options) ->
@template = "#" + options.model.attributes.nodetemplate + "-template"
tagName: 'div'
nodesView = Backbone.Marionette.CollectionView.extend
itemView: nodeView
itemViewOptions: @model