javascript - 使用 dojo 在表单上显示成功/失败消息

标签 javascript dojo

我正在使用 dojo 1.8 创建一个应用程序。

我有一个带有按钮的表单来执行某些操作。操作完成后,我会获取后端流程执行的状态。目前我正在使用警报框来告知用户状态。我知道,这是非常老式的。所以我正在尝试的是:如果状态为“成功”,那么我将在表单顶部显示一条消息(以绿色文本显示),否则显示错误消息(以红色显示)。

为此,我在 HTML 文件中创建了两个 DIV

<div id="successNotification" data-dojo-attach-point="successNotification"></div>
<div id="failureNotification" data-dojo-attach-point="failureNotification"></div>

在postCreate方法中,在request.invokePluginService的requestCompleteCallback方法中,我试图设置DIV标签的innerHTML。 但下面的代码总是会导致“successNotification is undefined”错误。

if (ifSuccess == 'true' || ifSuccess )
{
    var successNotification = dijit.byId("successNotification");
}

在同一个 block 中,我使用了 dijit.byId("some other component") 并且工作正常。

我做错了什么?

最佳答案

我在这里注意到了几件事。首先,您的 if 代码看起来无效(true 之后有一个 ')。

然后,如果您要创建自定义小部件,则不应通过 ID 检索小部件或 DOM 节点,这意味着您不应该使用:

  • dijit.byId()
  • dojo.byId()
  • dojo/dom::byId()
  • dijit/registry::byId()

正确的方法是使用通过 data-dojo-attach-point 属性创建的附加点。当您从 dijit/_TemplateMixin mixin 继承时,您可以简单地使用: this.successNotification 并且如果您也从 dijit/_WidgetsInTemplateMixin 继承,然后您可以使用相同的语法来检索小部件实例。

在你的情况下,它是:

if (ifSuccess) {
  var successNotification = this.successNotification;
}

关于javascript - 使用 dojo 在表单上显示成功/失败消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25764353/

相关文章:

javascript - 有没有办法从 Jquery Deferred/Promise 到 When-JS Promise

javascript - 获取 Dojo 单选按钮值?

javascript - Dojo 什么时候需要 args 变量?

php - 如何使dojo数据网格具有可编辑的行数据、可排序和分页

javascript - HTML 数字输入行为异常的自定义验证

javascript - 浏览器问题: Charts are not rendered on IE8

javascript - ngOnInit() 中的 Angular 8 Http Observables

javascript - 如何在 React 中显示图像,这些图像作为文件下载并保存在服务器上的文件夹中,文件路径存储在我的数据库中?

javascript - Bootstrap 4 popper 未定义

javascript - 使用express js获取404渲染 View ejs