Backbone / Javascript удалить элемент из DOM - PullRequest
0 голосов
/ 30 января 2012

У меня есть страница с двумя классами 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

1 Ответ

0 голосов
/ 23 февраля 2012

Можете ли вы опубликовать еще немного кода? Когда вы говорите «редактировать ссылку», вы имеете в виду что-то в DOM или URL в адресной строке.

Когда вы вызываете @ model.save, Backbone автоматически обновляет атрибуты модели с атрибутами, возвращаемыми сервером, поэтому

@model = note

не требуется. Но если вы не привязываете событие «изменить» к модели, то представление не будет обновляться при изменении модели.

Используете ли вы магистральные маршрутизаторы для обработки изменений в location.hash?

Вы можете удалить представление из DOM, вызвав @remove () Вы также можете вызвать $ (@ el) .replace (...), если хотите заменить его чем-либо.

...