首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dojo BorderContainer小部件不会呈现

Dojo BorderContainer小部件不会呈现
EN

Stack Overflow用户
提问于 2012-11-01 14:48:21
回答 2查看 404关注 0票数 0

我用Maqetta创建了一个布局。现在我想将逻辑添加到布局中。因此,我从Maqetta下载了整个工作区,并将文件/libaries导入到一个新的Rails项目中。起初,我遇到了一些问题,Rails没有加载dojo,js文件,但我已经解决了这个问题。

现在我又遇到了另一个问题。页面不会呈现。除了一个小部件(一个按钮)之外,我已经将所有内容都注释掉了,这很好。但如果我撤销这个,什么都不会发生。不幸的是,我也没有从dojo得到任何警告/错误或类似的东西。

尝试了一会儿之后,我更改了parseOnLoad属性,现在我收到了警告:

未处理错误:尝试向id==appLayout注册小部件,但该id已经注册

下面是包含标记:

代码语言:javascript
复制
<%= javascript_include_tag "lib/dojo/dojo/dojo", :'data-dojo-config' => "'async':true,
        'packages':[{'name':'maqetta','location':'../../maqetta'},{'name':'gridx','location':'../gridx'},{'name':'clipart','location':'../../clipart'},{'name':'shapes','location':'../../shapes'},
        {'name':'maqettaSamples','location':'../../../samples'},{'name':'zazl','location':'../../zazl'},{'name':'widgets','location':'../../custom'}]" %>

下面是HTML部分(我已经简化了它,现在我只是使用本教程中的示例):

代码语言:javascript
复制
<body class="claro" data-maq-flow-layout="true" data-maq-ws="collapse" id="myapp" data-maq-appstates="{}">

<input type="button" data-dojo-type="dijit.form.Button" intermediateChanges="false" label="Search" iconClass="dijitNoIcon" onclick="alert('hi');"></input>
<div
id="appLayout" class="demoLayout"
data-dojo-type="dijit/layout/BorderContainer"
data-dojo-props="design: 'headline'">
    <div
    class="centerPanel"
    data-dojo-type="dijit/layout/ContentPane"
    data-dojo-props="region: 'center'">
        <div>
            <h4>Group 1 Content</h4>
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
        </div>
        <div>
            <h4>Group 2 Content</h4>
        </div>
        <div>
            <h4>Group 3 Content</h4>
        </div>
    </div>
    <div
    class="edgePanel"
    data-dojo-type="dijit/layout/ContentPane"
    data-dojo-props="region: 'top'">Header content (top)</div>
    <div
    id="leftCol" class="edgePanel"
    data-dojo-type="dijit/layout/ContentPane"
    data-dojo-props="region: 'left', splitter: true">Sidebar content (left)</div>
</div>

下面是解析器:

代码语言:javascript
复制
require(["dojo/parser","dojo/domReady!"], function(parser){
     parser.parse();
});

我已经试了好几个小时了,我还是像刚开始的时候一样无所适从。有人知道我能尝试什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-01 14:58:44

未处理错误:尝试向id==appLayout注册小部件,但该id已经注册

此错误是因为您正在分析两次。一次加载,第二次在require语句中。第二个解析将尝试使用相同的id注册第二个小部件,从而导致错误。

删除一个解析调用,并给边框容器一个特定的宽度和高度。

代码语言:javascript
复制
<div id="appLayout" class="demoLayout" 
  data-dojo-type="dijit/layout/BorderContainer"
  data-dojo-props="design: 'headline'"     
  style="width: 800px; height: 400px">
票数 2
EN

Stack Overflow用户

发布于 2012-11-01 17:40:43

参见http://livedocs.dojotoolkit.org/dijit/layout/BorderContainer#setting-sizeshasLayout为真的最近的父级(例如,位置:相对)必须有一个width+height集。另外,将width+height设置为BorderContainer。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13179556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档