尝试在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的新手,所以也许我错误地使用了这个视图?谢谢你的帮助
答案 0 :(得分:0)
我把它作为我的HTML:
<div class="container"></div>
而在我的骨干视图中,我使用的是这样的:
el: "#container"
因为它是一个id选择器和我的html使用类,所以骨干网永远找不到dom元素。将html更改为具有“容器”的ID修复它