Я пытался прикрепить обработчик к событию изменения размера в одном из моих представлений Backbone. Проведя небольшое исследование, я обнаружил, что вы можете прикреплять события только к элементу представления или его потомкам.
Это проблема для меня, потому что визуальный эффект, который я пытаюсь достичь, невозможен с использованием чистого CSS и требует некоторого JS для установки размеров элемента области содержимого на основе окна за вычетом элемента заголовка.
Если у вас возникли проблемы с визуализацией того, что я пытаюсь сделать, представьте тонкий заголовок и область содержимого, которая должна занимать оставшееся пространство без каких-либо уловок фона CSS;)
Я приложил пример кода. Если у вас есть другие указатели, я бы тоже хотел их услышать!
define(
[
'jQuery',
'Underscore',
'Backbone',
'Mustache',
'text!src/common/resource/html/base.html'
],
function ($, _, Backbone, Mustache, baseTemplate) {
var BaseView = Backbone.View.extend({
el: $('body'),
events: {
'resize window': 'resize'
},
render: function () {
var data = {};
var render = Mustache.render(baseTemplate, data);
this.$el.html(render);
this.resize();
},
resize: function () {
var windowHeight = $(window).height();
var headerHeight = this.$el.find('#header').height();
this.$el.find('#application').height( windowHeight - headerHeight );
}
});
return new BaseView;
}
);
Я буду благодарен за любую помощь.
Спасибо, Alex