Если вы посмотрите на приложение ToDo в инструментах Dev, в AppView создается новый ToDoView каждый раз, когда создается новая ToDo (модель). Но я не вижу «коллекции» ToViews. Я спрашиваю об этом, потому что я думаю, что представление уничтожается, когда модель уничтожена, но не может найти ссылку. Являются ли Backbone Views постоянными
ответ
Отличительные особенности, как правило, представляют собой структуры с памятью (например, сам DOM), поэтому, если ваш код javascript содержит ссылку на них (что делает их неприемлемыми для сбора мусора с помощью механизма JS браузера), они продолжают существовать. Закройте окно, и они исчезли. Нажмите ссылку на другую страницу, на которой загружается полная страница, и они исчезли.
Однако, вид автоматически не реагирует на разрушаемую модель. Вы должны вручную подключить что-то вроде this.listenTo(this.model, 'destroy', this.remove.bind(this))
или что-то вдоль этих строк, если вы хотите, чтобы модель исчезла из DOM, когда она удалена через магистраль.
Кроме того, как вы заметили, это обычное явление, когда у вас есть коллекция моделей, которые вы хотите визуализировать, чтобы просто создать новое представление для каждой модели, отобразить ее, а затем не хранить ссылку на нее. Когда коллекция изменяется, внешний элемент становится опустошенным, новые экземпляры представлений создаются и визуализируются, и, таким образом, старые экземпляры просмотров имеют право на автоматическую сборку мусора. Таким образом, javascript обработает очистку этих старых представлений, но это не повлияет на соответствующие модели и не вызовет никаких запросов AJAX.
- 1. Являются ли идентификаторы узлов постоянными?
- 2. Являются ли переменные Automator постоянными?
- 3. Являются ли Java-литералы постоянными?
- 4. Defaults for Backbone views
- 5. Backbone Router и Views
- 6. Backbone update Views
- 7. BackBone Views События Hash
- 8. Являются ли элементы графика Facebook постоянными?
- 9. Являются ли строковые литералы постоянными или нет?
- 10. Являются ли идентификационные номера репозитория GitHub постоянными?
- 11. Являются ли проверки воспроизведения постоянными между тестами?
- 12. Являются ли неизменяемые объекты постоянными потоками?
- 13. Являются ли инициализированные ядра pthread_mutex_t постоянными?
- 14. Являются ли текущие расширения Ivars постоянными?
- 15. события jquery не являются постоянными
- 16. Общие предпочтения не являются постоянными
- 17. Данные QBChatDialog не являются постоянными. Как сделать данные QBChatDialog постоянными?
- 18. Создайте новые Backbone Views в событии click Backbone View
- 19. Почему адреса функций не являются постоянными выражениями
- 20. Backbone Views и webshims для значений формы
- 21. CoreData: атрибуты базового класса не являются постоянными
- 22. Require.js loading Backbone views в порядке
- 23. Наличие статической переменной в Backbone js views
- 24. Являются ли std :: list итераторами уникальными и постоянными?
- 25. Являются ли файлы cookie постоянными в разных браузерах?
- 26. Являются ли объекты POCO «постоянными невежественными» или чем-то еще?
- 27. Являются ли настройки последовательного порта постоянными в Linux?
- 28. Являются ли связки в андроиде постоянными в состояниях сохранения активности?
- 29. Являются ли BackGround Tasks постоянными? (Windows/Windows Phone 8.1)
- 30. Таблицы Java Derby не являются постоянными
Все еще смущен. Если данные модели изменяются, представление должно быть обновлено. Если его больше нет, как он обновляется? Кажется, что модели являются единственными реальными объектами, которые здесь можно повторить. – mike628
Представления по-прежнему «действительно там», и если ваши события правильно подключены, то при изменении данных модели представления этой модели будут реагировать на эти события и соответственно обновлять их элементы DOM. Дело в том, что взгляды имеют ссылку на их модель, обычно нет веских оснований держать список представлений, потому что, если вы просто манипулируете моделями, привязки событий будут делать представление, и представления будут обновляться автоматически. Таким образом, вы можете хранить ссылки на свои взгляды, если хотите, иногда вам нужно, но часто вам это не нужно. Может быть, кто-то еще может объяснить лучше –