无法从 Dojo 模块调用另一个 Dojo 模块中的函数
cant call function in another dojo module from dojo module
我在另一个道场模块中从我的 dojo 模块调用方法时遇到问题。 我的调用模块的代码是:
define([
"Templates/MarkTicket",
"DataTypes/MarkTicketForm_Data",
"DBCalls/MarkTicketDB",
...], function (MarkTicket, MarkTicketForm_Data, MarkTicketDB, ...
) {
return declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], {
postCreate: function () {
//both modules have Test Method
MarkTicketDB.Test("call from MarkTicketForm");//works great
MarkTicket.Test("call from MarkTicketForm");//object doesnt support property or method test
},
...
});
});
在 MarkTicketDB 中调用测试工作正常,但是当我尝试在 MarkTicket 中调用测试方法时,我收到代码注释中显示的错误。 MarkTicket在调试时只显示一个Createsubclass和exten方法。 我调用这些方法的模块也位于模板目录中 - 这可能是问题所在吗? (我也尝试在定义语句中将 Templates/MarkTicket 定义为 MarkTicket)模板包在我的主页中定义
有什么想法吗?
谢谢
正如我在评论中所说,我认为问题可能是我的调用模块(MarkTicketForm)是一个通过MarkTicket实例化和打开的dijit对话框,这是代码:
马克票:
...
postCreate: function () {
MT = new MarkTicketForm();//instaniate MarkTicketForm inside MarkTicket
}
...
//call a Method in MarkTicket Form to open the dialog
MT.showForm(TicketInfo);
...
MarkTicketForm(显示对话框的代码):
...
showForm: function (ticketInfo) {
ID = ticketInfo.ID;
var DateRcvd = this.formatDate(ticketInfo.DateRcvd);
this.lblID.innerHTML = ticketInfo.ID;
this.lblTicket.innerHTML = ticketInfo.Ticket;
this.lblRcvd.innerHTML = DateRcvd;
this.lblType.innerHTML = ticketInfo.TicketType;
this.myDialog.show();
},
...
就像g00glen00b说的,你应该列出MarkTicket的代码。 但是,既然你说:
MarkTicket在调试时只显示一个Createsubclass和exten方法。
。很明显,MarkTicket 是通过 dojo.declare() 创建的类。
据推测,Test() 是 MarkTicket 实例上的一个方法,而不是 MarkTicket 类本身。 因此,您可以执行以下操作:
var m = new MarkTicket();
m.Test("call from MarkTicketForm");
相关文章:
- 如何确保 Dojo 模块按特定顺序执行
- 如何在初始功能之外以适当的 AMD 方式使用自定义 Dojo 模块
- 无法从 Dojo 模块调用另一个 Dojo 模块中的函数
- 访问 dojo 模块中的 javascript 变量
- Dojo构建没有't包括dojo/dom、dom/when、dojo/dom-class和大约100个其他模块
- Dojo构建模块依赖关系
- 如何使Dojo/Request'无效;s模块缓存
- Dojo'中的按键事件;s在模块上
- 在dojo模块中引用父级的JSON/javascript成员函数
- 如何执行我的回调函数是一个自定义Dojo模块
- Dojo新手关于Dojo模块的问题
- 为什么简化的CommonJS Wrapper语法在我的Dojo AMD模块上不起作用
- 如何从自定义dojo模块中获取值
- Javascript模块管理系统(dojo. js)需要选择呢?)
- Dojo AMD加载器是否确保模块只执行一次?
- Dojo需要AMD模块调试IE9
- 应该大多数Dojo模块需要Dojo /domReady
- 在Dojo中,为什么需要()一个已经定义()的模块呢?
- 在Angular应用中加载Dojo模块
- 在自定义dojo模块中的xhr请求后调用兄弟方法