从视图和服务器中删除骨干集合

时间:2013-04-08 16:09:48

标签: backbone.js collections coffeescript

努力使以下代码在管理主干集合的视图中工作:

class VGStream.Views.Scenarios.ScheduleRisks extends Backbone.View
  template: JST['backbone/templates/scenarios/schedule_risks']

  initialize: (options) ->
    super
    Backbone.pubsub.on 'allSchedulesRemoved', @removeAllScheduleRisks, @

  removeAllScheduleRisks: =>
    for risk in @risks.models
      risk.destroy
    @render()

  render: ->
    super
    @risks.fetch()
    @$el.html @template @
    @

我只是从Coffeescript类视图中显示相关的代码片段。这不会从数据库或列表视图本身中删除“风险”模型。我该怎么办?删除所有计划后,事件allSchedulesRemoved将正确触发。我希望从视图和数据库中删除相关的风险。

1 个答案:

答案 0 :(得分:1)

  1. 您无需始终致电super
  2. 内置@risks.each()方法来循环收集。
  3. 不建议将fetch()放入render()
  4. 要清除集合,您可以执行多个@risks.remove(risk),或者在销毁所有内容后,使用空对象reset集合。
  5. risk.destroy实际上会向您的后端发送删除请求,因此它是否已在服务器中删除取决于您的后端代码。