0

我想在 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>
4

1 回答 1

1

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

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

还有另一个未解决的依赖关系,我通过dijit._Container在 require 之前明确要求 AMD 模块来解决它dojox.widget.Portlet

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

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

于 2012-05-08T11:48:04.973 回答