OverlayViewとStoryViewの2つのビューがあります。StoryViewをOverlayViewに追加する必要があります(どちらも動的に作成されます)。OverlayViewで動的に#overlaydivを作成しますが、StoryViewの「el」を#overlayに設定すると、StoryViewのthis。$elは空の配列になります。#overlay divは、StoryViewが作成されるまでにDOMに確実に存在します。
StoryViewに動的に作成された#overlayを「el」として認識させるにはどうすればよいですか?'el'がビューが追加される'親'コンテナであると仮定するのは正しいですか?OverlayViewの「el」は実際には「#overlay」である必要がありますか?
OverlayView:
OverlayView = Backbone.View.extend({
el: $('body'),
events: {
'click #film': 'hideOverlay'
},
initialize: function() {
this.render();
},
render: function() {
this.$el.append('<div id="overlay"></div>');
return this;
}
});
StoryView:
var StoryView = Backbone.View.extend({
el: $('#overlay'),
events: {
'click .close': 'closeStory'
},
initialize: function() {
this.render();
},
render: function() {
console.log(this.$el); // Returns empty array []
return this;
}
});