Ibm mobilefirst 未找到自定义dojo小部件的构造函数
我试图在Worklight 6.0应用程序中使用dojo 1.9创建一个简单的小部件,但我遇到了太多问题,我在这方面花了太长时间,我可能错过了一些非常简单的小部件 在这里,您可以找到我的Worklight应用程序的结构: 我已经创建了包含javascript文件(小部件等)的子文件夹 这是我的主HTML文件: 最重要的是: var dojoConfig = { isDebug : true, async : true, parseOnLoad : true, mblHideAddressBar: false, packages : [ { "name" : "playground", "location" : "js/playground" } ] }; 我对define中的模块名、dojoConfig中的包以及其他javascript文件中的include(require)是如何协同工作的感到有点困惑。 目前我遇到了以下错误:Ibm mobilefirst 未找到自定义dojo小部件的构造函数,ibm-mobilefirst,dojo,dojox.mobile,Ibm Mobilefirst,Dojo,Dojox.mobile,我试图在Worklight 6.0应用程序中使用dojo 1.9创建一个简单的小部件,但我遇到了太多问题,我在这方面花了太长时间,我可能错过了一些非常简单的小部件 在这里,您可以找到我的Worklight应用程序的结构: 我已经创建了包含javascript文件(小部件等)的子文件夹 这是我的主HTML文件: 最重要的是: var dojoConfig = { isDebug : true, async : true, parseOnLoad : true, m
dojo/parser::parse() error
Error: Unable to resolve constructor for: 'playground.HeaderWidget'
在另一个javascript文件中尝试此操作时:
require([ "js/playground/widgets/header/HeaderWidget"], function(HeaderWidget) {
WL.Logger.debug("DOING SOMETHING WITH MY WIDGET");
似乎有效(虽然我实际上还没有创建headerwidget程序,但似乎没有成功。函数declare()
一次只允许3个参数:
- 类名,在本例中为
playway.HeaderWidget
- 超类模块(
和\u WidgetBase
)\u TemplatedMixin
- 对象/类本身
null
one)太多了
在您的情况下,它将使用null
作为超类,并将超类模块数组[\u WidgetBase,\u TemplatedMixin]
作为类/对象。该数组没有构造函数
,null
也没有构造函数,因此它将抛出一个错误
解决方案:删除
null
参数。有关declare()
功能的更多信息(以及可能的参数)可以在中找到。在与Dimitri M的简短会话后,我们在我的小部件中发现了一些问题:-如上所述传递给declare的参数错误-在de小部件中:基类:“headerWidget”定义在错误的位置,它应该在postConstruct之外,但是为小部件使用模块ID似乎不起作用。
dojo/parser::parse() error
Error: Unable to resolve constructor for: 'playground.HeaderWidget'
require([ "js/playground/widgets/header/HeaderWidget"], function(HeaderWidget) {
WL.Logger.debug("DOING SOMETHING WITH MY WIDGET");