В моем проекте я не могу инициировать событие щелчка, зарегистрированное в одном представлении магистрали, из другого представления магистрали. на самом деле у меня есть ввод типа файла, скрытый от пользователя, и мне нужно запустить ввод типа файла.
var FileView = Backbone.View.extend({
....
events : {
"click .delete-image" : "deleteFile",
}
....
});
var FilesView = Backbone.View.extend({
....
events : {
"click #attach" : "attachFile",
},
attachFile : function() {
this.fileView.trigger("click .delete-image");
}
....
});
Но я пробовал, как это событие не запускается. как это возможно.
1 ответ
Хэш events
присоединяется к элементу jquery, который представляет представление, а не к самому основному представлению. Так что вам, скорее всего, придется сделать что-то вроде этого:
attachFile : function() {
$('.delete-image', this.fileView.$el).trigger("click");
}
Но я бы не одобрял такого рода не-шаблон и вместо этого работал бы над тем, что мы называем шаблоном агрегации событий. Вы можете найти коллекцию действительно хороших решений SO ниже:
- запускать событие из одного представления в другое в магистрали
- Глобальные события Backbone.js
- Множественный просмотр на одной странице с backbone.js
Похожие вопросы
Новые вопросы
backbone.js
Backbone.js - это JavaScript-фреймворк с интерфейсом RESTful JSON, основанный на парадигме разработки приложений модель-представление-презентатор (MVP).