0

Backbone layouamanager でネストされたビューを使用しようとすると、奇妙なエラーが発生します。入れ子になったビューを次に示します (RequireJS も使用しています)。

define([
'jquery',
'underscore',
'backbone',
'templates',
], function ($, _, Backbone, JST) {
'use strict';

var ResultsView = Backbone.View.extend({
    template: JST['app/scripts/templates/results.ejs'],

});

return ResultsView;
});

親レイアウト ビューは次のとおりです。

define([
'jquery',
'underscore',
'backbone',
'templates',
'layoutmanager',
'views/results-view'
], function ($, _, Backbone, JST, manager, ResultsView) {
'use strict';

Backbone.Layout.configure({
  manage: true
}); 

var AppView = Backbone.Layout.extend({
    template: JST['app/scripts/templates/App.ejs'],
    el: '#container',

    views: {
        "#search-results": new ResultsView()
    }
    });

  return AppView;
});

親レイアウトをインスタンス化するコードは次のとおりです。

define([
'jquery',     
'underscore',
'backbone',
'views/App-view'
 ], function($, _, Backbone, AppView){

var initialize = function(){
    new AppView().render(); 
};

return {
   initialize: initialize
  };

});

ページをロードすると、次のエラーが表示されます。

"Uncaught TypeError: Cannot read property 'ownerDocument' of undefined"

エラーはJqueryから来ています。上記のコードからこの行を削除すると:

el: '#container',

エラーはなくなります。私はまだ Backbone を使い始めたばかりなので、ビューの使い方が間違っているのでしょうか? 助けてくれてありがとう

4

1 に答える 1