javascript - 如何处理通过附加下划线模板传递的模型

标签 javascript underscore.js marionette

我知道当模型和模板分离时,处理模型很容易。 但是,当我在 View 中附加模板并向其传递模型时,我想触发一个事件来销毁我传递的模型。部分代码如下:

ImageView.extends Marionette.ItemView
events:
  'click [data-event=delete]' : 'delete'

ui:
  'image' : 'div[name=image]'

template : """
  <img src='<%=image.get('url')%>' />
  <a data-event=delete>X</a>
"""
addImage : (image) ->
  @ui.image.append _.template(@template)({ image: image })

delete : ->    //I can trigger this event, but no idea how to pass the image model in order to
               //delete it
  upload.destory()

图片正常显示,说明模板收到了模型,但是如何在触发的事件中传递图片模型呢?

最佳答案

您应该使用Marionette.ItemView's callback methods这将帮助您销毁图像模型

ItemView 的 onRender 回调将是正确的选择。

var ImageView = Marionette.ItemView.extend({
   // you initialization, ui bindings, etc
   onBeforeRender: function () {
       // Triggered before an ItemView is rendered.
   },
   // Here you can destroy your model
   onRender: function () {
       // Triggered after the view has been rendered.
       this.model.destroy();
   }
});

onRender 将在 View 呈现后调用,并且 this.model.destroy() 将销毁与当前 ItemView 关联的模型>。

关于javascript - 如何处理通过附加下划线模板传递的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24611609/

相关文章:

javascript - 如何使用 jquery 更改选项框的宽度(独立于选择宽度)?

Javascript 交换三段

.NET/Visual Studio 中的 Javascript 测试结构

javascript - 修改_.reject里面原来的数组

javascript - 主干/Marionette 试图让 AttachView 工作

javascript - 使用 CoffeeScript、CommonJS 扩展 Backbone.Marionette 模块

model - 更改 Marionette.ItemView 模型的最佳实践

javascript - Reactjs 中的 Canvas 手绘撤消和重做功能

javascript - 模拟 python 中 findWhere() 的行为

javascript - 主干 - 删除集合中的最后一个模型,但只能通过过滤器