バックボーン ビューを含む requireJS モジュールをロードしています。そのビュー内では、「初期化」中に、別のモジュールに含まれるサブビューもロードされます。これが完了したら、新しくロードされたサブビューにリスナーを追加したいと思います。ただし、ロードされるはずだった子モジュールがまだ何らかの理由で登録されていないため、この操作は失敗します。以下のコードでは、"that.childModule" をログに記録すると、未定義の値が返されますが、モジュールが正しく読み込まれている場合はそうではありません。何が問題になる可能性がありますか
//Sample of a requireJS module that contains a backbone view, which in turn loads other subviews
define(function (require) {
//Narrate dependencies
'use strict';
var $ = require('jquery');
var _ = require('underscore');
var Backbone = require('backbone');
//Create the parentView
var ParentView = Backbone.View.extend({
initialize: function() {
_.bindAll(this, 'render');
this.render();
//Make the subViews
var that = this;
require([
'models/common/childModel',
'views/common/childView'
], function(ChildModel, ChildView){
that.ChildModule = new ChildView({
el: $(".theDiv", that.el),
model: new ChildModel()
});
});
console.log(that.ChildModule)
this.listenTo(this.ChildModule.model, 'change:focus', this.blur);
},
render: function() {
$(this.el).addClass('something');
$(this.el).append('<div class="theDiv"></div>');;
return this;
},
});
return ParentView;
});