这花了我一段时间。许久。我一次解决了两个问题(循环依赖,通过重构修复,以及这个问题)。要将这个问题放到 JSFiddle 中需要做很多工作......但我认为这是值得的。所以:
我定义了三个小部件:
r.AppMainScreen -- 这是主应用程序的小部件。简单:只有一堆选项卡和一个包含一个简单按钮的按钮,它是:
// SUbmit form this.form.onSubmit = function(e){ e.preventDefault(); console.log("HERE"); dialog = new r.RetypePasswordDialog(); dialog.show(); return false; }
相当无趣。
r.RetypePasswordDialog() -- 代表对话框的模板化小部件。唯一有趣的是:
< input name="password" id="${id}_password" data-dojo-attach-point="password" data-dojo-type="app.ValidationPassword" />
这是一个简单的自定义小部件,在这个文件中定义,它进行验证。注意:我知道在这里为这个小工作创建一个子类是没有意义的。请记住,这是一个示例。
- r.ValidationPassword()
带有一些额外验证的增强 ValidationTextBox。
如果你点击按钮,你会得到:
Uncaught Error: Could not load class 'app.ValidationPassword
……?!?app.ValidationPassword肯定已经被定义了。它应该在那里可用。一开始,我以为是因为一个循环依赖(昨天很有趣:我不得不学习AMD循环依赖同时试图解决这个问题......)
如果取消注释此行,则在脚本中执行:
TEST = new r.RetypePasswordDialog();
整个事情都有效。这是一个毫无意义的例子,我无法弄清楚为什么这会或应该有所作为。
最欢迎解释......我找不到任何解释!
谢谢,
默克。