我想在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>
答案 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/