Это не вопрос относительно вложенных представлений, я прочитал учебники по этому вопросу, но они, похоже, не применимы к моей проблеме.SetElement Backbone.View не перемещает прослушиватели событий
Итак: у меня есть вид Backbone, который в своем методе render()
создает абсолютно новый и независимый элемент через внешний модуль npm. Это не идеально, но быстрее, чем переписывать его самостоятельно. В пределах render()
и после создания экземпляра нового элемента я вызываю this.setElement
для привязки представления к вновь созданному элементу. Пока все хорошо, this.$el
правильно обновлено.
Но я определил карту events
, обработчики событий которой не перемещаются в новый $el
. Почему это? Что я делаю не так?
Ich создал упрощенную суть: https://gist.github.com/4nduril/dab571e876b215e3786f
EDIT: Я редактировал скрипку Джеймс Akwuh к одному напоминающим моему коду: https://jsfiddle.net/ztwz3e3o/ Вы можете видеть, я вызываю метод визуализации в прослушивателя событий. Очевидно, эта скрипка работает. Поэтому я до сих пор не знаю, почему мой собственный код этого не делает.
Я буду продолжать копать.
Я верю, что на этот вопрос ответят: http: //stackoverflow.com/questions/9586279/using-setelement-with-views-in-backbone ... возможно, дублирующий вопрос –
Спасибо, но я не подумайте, что это та же проблема, что и у меня. Как я уже сказал, ссылка на это. $ El обновляется правильно, но слушателей событий нет. Если я не понимаю ваш намек, пожалуйста, уточните. – 4nduril
Я думаю, что проблемы в том, что вы не можете установить el внутри render, потому что представление еще не было отображено, поэтому события не могут быть сохранены. Либо добавьте новые элементы в существующий элемент, который служит вашим el, либо попытайтесь сделать это после рендеринга. –