Backbone/Javascript 从 dom 中删除元素

发布于 2025-01-01 01:22:38 字数 629 浏览 1 评论 0原文

我有一个包含两个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小…楫夜泊 2025-01-08 01:22:38

您可以发布更多代码吗?当您说“编辑链接”时,您指的是 DOM 中的某些内容,还是地址栏中的 url。

当你调用@model.save时,Backbone会自动用服务器返回的属性更新模型的属性,所以不需要

@model = note

。但是,如果您没有将模型上的“更改”事件绑定到任何内容,那么如果模型发生更改,视图将不会更新。

您是否使用 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

@model = note

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文