无法用木偶.layoutview加载区域
Not able to load a region with Marionette.LayoutView
我正在加载一个布局视图中预编译的车把模板。我正在定义区域,但是,我得到错误:
Uncaught Error: An "el" #questions-section must exist in DOM
(当然该节点存在于模板中)。
这是因为我使用了预编译的模板吗?代码:
q.boxView = Marionette.LayoutView.extend({
tagName : 'li',
className : "sortable_boxes_original",
template: Handlebars.templates["repoboxview"],
initialize : function(){
this.createQuestionsCollection();
this.createResponsesModel();
this.listenTo(this.model.get("response"), 'change', this.triggerChanged);
},
regions: {
questions: "#questions-section"
},
onBeforeRender: function(){
var that = this;
this.getRegion("questions").show(new q.questionsListView({collection: this.model.get("questions"), model: this.model}));
}
});
添加Kevin的答案,一个更适合显示子视图到区域的回调是onBeforeShow()
发生这种情况是因为您试图在该区域实际上是DOM的一部分之前将某些内容放入该区域。来自文档:
如果视图能够访问区域定义中指定的元素,则区域只能填充自身。也就是说,如果您的视图尚未呈现,您的区域可能无法找到您为其指定的要管理的元素。在这种情况下,使用区域不会导致DOM发生任何变化。
用onBeforeShow()
代替onBeforeRender()
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在chrome.tabs.onCreated之后加载HTML页面
- 单击F5时如何停止页面加载
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 跟踪在页面加载时应用内联样式的JavaScript
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- jQuery Lazy加载动画滚动
- Html页面上的多个Base64图像和平滑加载
- 如何创建带有插槽的vue js组件预加载程序
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 如何使该数据在所有元素中加载
- Chrome扩展没有't在重新加载之前考虑期权价值
- 使用javascript在Flash中加载外部图像
- Ajax文件加载和<输入>文件加载
- 使用javascript函数在页面初始化后加载jquery
- 无法用木偶.layoutview加载区域