骨干:删除赢得't绑定
Backbone: Delete won't bind?
我正试图绑定我的一个主干视图,这样,当删除一个模型时,它也会从另一个视图中删除。
看起来很简单,但我似乎无法将destroy方法绑定到视图。我可以绑定到更改或新模型,但删除不会触发。我记得我隐约读到一些关于绑定删除的怪癖的文章,但我不记得它是什么,更重要的是,我不记得如何绕过它
任何想法都值得赞赏。简而言之,如果有人能提供一个将删除调用绑定到以下相关代码的例子:
源代码视图
class BackboneDemo.Views.Tasks.ShowView
# ...
events:
"click #mark_task_completed" : "markAsCompleted"
"click #delete_task" : "destroy"
destroy: () ->
$('#contentArea').html('')
$('#contentWrapper').css('display', 'none')
@model.destroy()
this.remove()
return false
编辑:仍然没有快乐。我在下面添加了更多代码,以准确显示的问题所在
型号
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'
已解决。如果其他人遇到这个问题,问题在于主干rails gem及其destroy()函数的工作方式。有一个未决的拉取请求可以解决这个问题,但它的缩写是:
- 确保将集合传递到视图
-
将默认destroy()代码替换为:
销毁:()->getViewAndCollection=((view)->return->{collection:@options.collection,view:@})(@)
@model.destroy()成功:(模型,响应)->vars=getViewAndCollection()vars.collection.remove模型vars.view.remove()错误:(型号,响应)->#无论您想要什么错误功能
您可以在此处的待处理拉取请求中看到更多信息
这是怎么回事:
MyView = Backbone.View.extend({
initialize: function(){
this.model.bind('destroy', this.remove(), this)
}
})
相关文章:
- 如何销毁/删除/取消绑定SnapSVG.js
- KnockoutJS删除动态绑定
- 从JSON中删除绑定
- jquery remove函数是否也删除了敲除绑定
- Magento网站-按选项排序:上下箭头与排序数据绑定,只需删除上下箭头即可
- 如何删除绑定到单击事件的任何jQuery操作
- 删除嵌套绑定
- 如何删除WinJS组绑定列表的最后一项
- 如何使用淘汰选项绑定从select中删除值
- 正在删除使用绑定添加的事件侦听器
- 删除和取消绑定主干中的子视图
- 删除 angular2 中的数据绑定
- 如何将两个 html 元素绑定在一起,当第一个元素被删除时,第二个元素也从 DOM 中删除
- 如果不对 .off() 使用相同的 $(document) 绑定,则无法删除使用 .on() 绑定到 $(documen
- JQuery 文档单击取消绑定将删除所有子单击事件
- 谷歌地图API 3 - 绑定后删除圆圈
- 在绑定或删除点击时 ATTR 失败
- 反应如何在组件中正确删除列表器将卸载,为什么我需要在构造函数中绑定
- 无法删除(绑定)事件侦听器
- 如何清除/删除Knockout.js中的可观察绑定