我有一个包,在dojoConfig
中定义如下:
packages: [
{ name: 'Widget', location: '/widgets/Widget' }
]
/widgets/Widget/main.js
文件定义了我的主模块。使用此配置,在Javascript中我可以require
模块Widget/main
直接通过其包名称,如下所示:
require(["Widget"], function(Widget){
var widget = new Widget();
// all is well
});
但是使用声明性语法执行相同操作会抛出无法解析构造函数:'Widget'错误:
<div data-dojo-type="Widget"></div>
我做错了什么,或者这是预期的行为?
答案 0 :(得分:0)
更容易看到小部件是如何创建的,但抱怨是你没有构造函数。 小部件需要构造函数。如果你扩展WidgetBase就完成了它。
检查文档: http://dojotoolkit.org/reference-guide/1.9/quickstart/writingWidgets.html
答案 1 :(得分:-1)
您需要添加
require(["Widget"], function(Widget){});
参与您正在使用的HTML文档中的脚本标记
<div data-dojo-type="Widget"></div>
看起来应该是这样的:
<script> require(["Widget"], function(Widget){}); </script>
您必须先要求模块/小部件才能在HTML页面中调用它,就像在脚本标记中执行它一样。