DOJO:无法正确显示portlet

时间:2012-05-08 10:17:39

标签: dojo portlet

我想在dojo 1.7中的mozilla浏览器上显示基本portlet,但以下是将数据显示为简单文本而不使用dojo API实际创建任何portlet。谁能告诉我我在做什么错?

<!Doctype html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../lib/dijit/themes/claro/claro.css"/>
<style type = "text/css">
@import "../lib/dojox/widget/Portlet/Portlet.css"</style>
<script src = "../lib/dojo/dojo.js" data-dojo-config = "async: true, parseOnLoad:true" >
dojo.require("..lib/dojox/widget/Portlet");
dojo.require("..lib/dijit/dijit");
</script>
</head>
<body class="claro">
<div data-dojo-type="dojox.widget.Portlet" title="A Simple Portlet">
<div data-dojo-type="dojox.widget.PortletSettings">
    This is a simple setting widget.
    Put Whatever you like in here
</div>
<div style="height: 100px;">
The contents of the portlet go in here.
</div>
</div>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

查看dojox.widget.Portlet源代码。它不会被重写为AMD格式,因此您无法解析依赖关系。即使测试dojox/widget/tests/test_Portlet.html也不起作用。

要解决此问题,请将加载程序切换到定义async: false的同步模式,或者完全省略Dojo 1.7中的定义,同步模式是默认的。

还有另一个未解决的依赖项,我通过在要求dijit._Container之前明确要求AMD模块dojox.widget.Portlet来解决这个问题:

dojo.require("dijit._Container");
dojo.require("dojox.widget.Portlet");

请参阅jsFiddle上的工作示例:http://jsfiddle.net/phusick/MWnYZ/