2014-10-25 2 views
0

Я сделал вид для сохранения и отображения моделей. Он имеет такие события,Поднять событие события на элемент из другого шаблона

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() 

Теперь, если я ставлю Lī элемент в шаблоне, и я нажимаю на него addEntry событие получает triggerd и сохраняет модель в моей базе данных Rails. Также мое мероприятие destroyEntry работает, чтобы удалить модели. И функция appendEntry запускается, когда модель добавляется в коллекцию.

Но я использую другое представление, чтобы показать коллекцию фильмов в списке. Теперь я хочу связать событие click li с li на другом шаблоне. Это возможно? Если да, то как?

ответ

1

В другом представлении вы можете использовать тот же источник данных. В этом случае это коллекция фильмов. Поскольку он является основой, и представления - это просто представление моделей данных, используйте данные для визуализации или инициирования изменений в представлениях.

На другом экране наблюдайте за изменениями в управляемой коллекции. Нет необходимости делегировать события, когда все, что вам действительно волнует, - это данные, которые изменяются.

OtherView = Backbone.View.extend 
    initialize: (params) -> 
    # this could also be the model, I'm not sure how you have this configured 
    @listenTo params.movieseats, "change", @updateMovies 

    updateMovies: -> 
    # manage the view here 
+0

Имеет смысл, но как я могу ссылаться на другую коллекцию? Если я использую 'addEntry: (e) -> movie_title = $ (e.target) .text() @ collection.create title: movie_title' в моем другом представлении код выбирает неправильную коллекцию, что приводит к ошибке' OPTIONS http://api.themoviedb.org/3/search/movie?api_key=a8f7039633f2065942cd8a28d7cadad4&query=star XMLHttpRequest не может загрузить http://api.themoviedb.org/3/search/movie?api_key=a8f7039633f2065942cd8a28d7cadad4&query=star. Недействительный код состояния HTTP 404 ' –

Смежные вопросы