如何“安全地”更改Backbone js视图中的模型?

时间:2012-10-10 13:07:09

标签: backbone.js marionette

我正在尝试使用Backbone js和Marionette的主要细节。如何更改视图的模型?我希望将视图的模型侦听器从旧模型中删除并应用于新模型。同样与模型相关的其他类似的东西。任何人都有一些“changeModel”代码可以干净利落地完成这项工作吗?

1 个答案:

答案 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