无法从dojo模板显示jquery警报

时间:2013-12-27 14:25:54

标签: dojo-1.9 noty

我正在使用Dojo-1.9.1并尝试为我们的应用程序构建一个模板化表单。我正在使用noty在表单验证失败时显示错误警报。当我在模板中直接使用时调用noty工作:

<form data-dojo-attach-point="formNode" data-dojo-type="dijit/form/Form"
    enctype="application/x-www-form-urlencoded" action=${submitUrl} method="post">
    <script type="dojo/on" data-dojo-event="submit">
        if(!this.validate()){
            noty({
        text: '${messages.invalidForm}',
        type: 'error',
        modal: true,
        timeout: 2000, // false, to wait for user click
        closeWith: ['click', 'hover'], // ['click', 'button', 'hover']
        }); // works
        return false;
        }
        return true;
        </script>
<!-- other fields -->
</form>

然而,在onSubmit方法中创建时,noty无法显示:

<form data-dojo-attach-point="formNode" data-dojo-type="dijit/form/Form"
    enctype="application/x-www-form-urlencoded" action=${submitUrl} method="post" data-dojo-attach-event="onSubmit:handleSubmit">

</form>

//Within the template.js
handleSubmit: function() {
 if(!this.formNode.validate()) {
     noty({text:...}); //fails to come up
     return false;
 }
 return true;
}

dojoConfig:
// ... preceding dojo packages
{ name: "jquery", location: "lib", main: "jquery-1.10.2.min" },
{ name: "noty", location: "lib", main: "jquery.noty.packaged.min" }

它也未能出现在控制台中。我想我已经正确地对这些库进行了AMD处理,因为它在第一时间工作。任何人都可以在我的实现中指出任何缺失的链接。感谢。

1 个答案:

答案 0 :(得分:0)

回答我自己的问题。我通过将noty加载为非amd文件来完成此工作:

//Within the template.js    
define([..., 'resources/js/lib/jquery.noty.packaged.min.js'], function(...) {

handleSubmit: function() {
 if(!this.formNode.validate()) {
     noty({text:...}); //fails to come up
     return false;
 }
 return true;
}
    })