Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干:删除韩元';不能束缚?_Javascript_Backbone.js_Coffeescript - Fatal编程技术网

Javascript 主干:删除韩元';不能束缚?

Javascript 主干:删除韩元';不能束缚?,javascript,backbone.js,coffeescript,Javascript,Backbone.js,Coffeescript,我正在尝试绑定我的一个主干视图,这样,当删除模型时,它也会从另一个视图中删除 看起来很简单,但我似乎无法将destroy方法绑定到视图。我可以绑定到更改或新模型,但删除不会触发。我记得我模糊地读到了一些关于绑定到删除的怪癖的文章,但我不记得是什么,更重要的是,我不记得如何避开它 任何想法都值得赞赏。简而言之,如果有人能提供一个将删除调用绑定到以下相关代码的示例: 源代码视图 编辑:还是没有快乐。我在下面添加了更多代码,以精确显示问题所在 模型 目标视图 这是怎么回事 MyView = Backb

我正在尝试绑定我的一个主干视图,这样,当删除模型时,它也会从另一个视图中删除

看起来很简单,但我似乎无法将destroy方法绑定到视图。我可以绑定到更改或新模型,但删除不会触发。我记得我模糊地读到了一些关于绑定到删除的怪癖的文章,但我不记得是什么,更重要的是,我不记得如何避开它

任何想法都值得赞赏。简而言之,如果有人能提供一个将删除调用绑定到以下相关代码的示例:

源代码视图 编辑:还是没有快乐。我在下面添加了更多代码,以精确显示问题所在

模型 目标视图 这是怎么回事

MyView = Backbone.View.extend({
    initialize: function(){
        this.model.bind('destroy', this.remove(), this)
    }

})

解决了。如果其他人遇到这个问题,问题在于主干rails gem及其destroy()函数如何工作。有一个挂起的pull请求解决了问题,但它的缺点是:

  • 确保集合已传递到视图
  • 用以下代码替换默认的destroy()代码:

    销毁:()-> getViewAndCollection=((视图)->返回->{collection:@options.collection,view:@})(@)

    @model.destroy() 成功:(模型、响应)-> vars=getViewAndCollection() vars.collection.remove模型 vars.view.remove() 错误:(模型,响应)-> #无论您想要什么错误功能


您可以在挂起的拉取请求中看到更多信息

哪里是绑定到“删除”或“销毁”或“删除”的部分?它位于目标视图代码中的initialize中。我尝试了各种不同的方法,希望它能够正常工作,通常是沿着@model.bind('remove',@test_function)的方法。您可能不想立即调用remove,他的示例已经显示了绑定到dom元素的两个事件,所以他需要先调用this.unbind(),然后调用this.remove().当然他可以调用他想要的所有方法感谢你的回复。我在上面的问题中添加了更多信息。我试过很多类似的方法,但都没有达到这个目的。remove()方法。还有其他想法吗
class MyModel extends Backbone.Model
  # ...

  destroy: () ->
    console.log 'this is getting hit'
    super
class TargetView extends Backbone.View
  # ...
  initialize:() ->
    _.bindAll(@, 'destroy', 'testmethod', 'render')
    @model.bind('destroy', @testmethod)

  testmethod: () ->
    console.log 'but this is not getting hit'
MyView = Backbone.View.extend({
    initialize: function(){
        this.model.bind('destroy', this.remove(), this)
    }

})