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