У меня есть шаблон с divs #entries
и #movies
В моем #entries
div Я покажу модели своей коллекции фильмов. В моем #movies
div я показываю результаты поискового запроса. (Именование элементов довольно плохо, я согласен).Можно ли только удалить часть шаблона
В представлении, которое делает шаблон у меня есть следующие события,
events: ->
"click li": "addEntry"
"click .remove": "destroyEntry"
addEntry: (e) ->
movie_title = $(e.target).text()
@collection.create title: movie_title
appendEntry: (entry) ->
view = new Movieseat.Views.Entry(model: entry)
$('#entries').append(view.render().el)
destroyEntry: (e) ->
thisid = @$(e.currentTarget).closest('div').data('id')
@collection.get(thisid).destroy()
Элемент литий визуализируется в #movies
дел. Таким образом, я могу щелкнуть результаты из другого представления и добавить их в другую коллекцию. Это работает, но есть проблема.
В той же точки зрения у меня есть это,
initialize: ->
@collection.on('change', @render, this)
@collection.on('add', @appendEntry, this)
@collection.on('destroy', @render, this)
return
Проблема заключается в том, что, когда изменения коллекции (например, при добавлении или удалении фильма из него) он повторно выводит шаблон. Это означает, что он перезагружает #entries
и #movies
div. Но теперь он просто отображает пустой #movies
div (без коллекции поиска).
Так что мне было интересно, можно ли отображать только часть шаблона. В этом случае я хотел бы только перезагрузить #entries
div и просто оставить только #movies
div.
Так вы говорите, когда изменения коллекции выполняют функцию renderEntries. Функция renderEntries обновляет html раздела '# entries' с содержимым из коллекции. Использует ли «render» часть в '$ ('# entries'). Html (render' ссылается на' function render (имя_файла, данные) '? –
yes, функция render - это просто некоторые утилиты, которые вы можете создать, чтобы использовать их в любом месте ваше приложение. – aleha
Хм. У меня возникли проблемы с пониманием '$ ('# entries'). html (render ('entries', {entries: yourEntriesCollection.toJSON()}))' Я попробовал это с '$ ('# entries ') .html (' hello) ', который заменяет текущий HTML на' hello'. Но я не понимаю, как подключить его к шаблону, который я использую для вывода моих данных. У меня есть шаблон в другой папке. Я не понимаю, что '{entries: yourEntriesCollection.toJSON()}' делает, или почему, если мне это понадобится. –