0

这花了我一段时间。许久。我一次解决了两个问题(循环依赖,通过重构修复,以及这个问题)。要将这个问题放到 JSFiddle 中需要做很多工作......但我认为这是值得的。所以:

http://jsfiddle.net/EVbTL/3/

我定义了三个小部件:

  • 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();

整个事情都有效。这是一个毫无意义的例子,我无法弄清楚为什么这会或应该有所作为。

最欢迎解释......我找不到任何解释!

谢谢,

默克。

4

1 回答 1

1
app = new r.AppMainScreen( {});

您在这里重新定义了全局app变量,但试图在别处将其用作您的类型系统的基础对象。用于var将变量范围限定为函数。

于 2012-08-15T09:30:34.067 回答