Backbone/Javascript 从 dom 中删除元素
我有一个包含两个 div 类的页面,这很好。一个是集合,另一个是项目。
但是当我想选择编辑时,我需要删除项目视图并将其替换为编辑链接,这没有发生并且它留在那里,下面是我的编辑类会很棒。
Supernote.Views.Notes ||= {}
class Supernote.Views.Notes.EditView extends Backbone.View
template : JST["backbone/templates/notes/edit"]
events :
"submit #edit-note" : "update"
update : (e) ->
e.preventDefault()
e.stopPropagation()
@model.save(null,
success : (note) =>
@model = note
window.location.hash = "/#{@model.id}"
)
render : ->
$(@el).html(@template(@model.toJSON() ))
this.$("form").backboneLink(@model)
return this
I have a page with two div classes which is fine. One is the collection the other the item.
But when i want to select edit, i need to remove the item view and replace it with the edit link, this is not happening and its staying there, below is my edit class would be great.
Supernote.Views.Notes ||= {}
class Supernote.Views.Notes.EditView extends Backbone.View
template : JST["backbone/templates/notes/edit"]
events :
"submit #edit-note" : "update"
update : (e) ->
e.preventDefault()
e.stopPropagation()
@model.save(null,
success : (note) =>
@model = note
window.location.hash = "/#{@model.id}"
)
render : ->
$(@el).html(@template(@model.toJSON() ))
this.$("form").backboneLink(@model)
return this
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以发布更多代码吗?当您说“编辑链接”时,您指的是 DOM 中的某些内容,还是地址栏中的 url。
当你调用@model.save时,Backbone会自动用服务器返回的属性更新模型的属性,所以不需要
。但是,如果您没有将模型上的“更改”事件绑定到任何内容,那么如果模型发生更改,视图将不会更新。
您是否使用 Backbone 路由器来处理 location.hash 中的更改?
您可以通过调用 @remove() 从 DOM 中删除视图
如果你想用某些东西替换它,你也可以调用 $(@el).replace(...) 。
Can you post some more of the code? When you say 'edit link', do you mean something in the DOM, or a url in the address bar.
When you call @model.save, Backbone will automatically update the attributes of the model with attributes returned by the server, so the
is not required. But if you are not binding the 'change' event on the model to anything, then the view will not update if the model changes.
Are you using Backbone routers to handle changes in the location.hash?
You can remove a view from the DOM by calling @remove()
You could also call $(@el).replace(...) if you wanted to replace it with something.