簡體   English   中英

使用dojo在表單上顯示成功/失敗消息

[英]Displaying success/failure message on the form using dojo

我正在使用dojo 1.8創建一個應用程序。

我有一個帶有按鈕的表單,可以執行一些操作。 操作完成后,我將獲得后端流程執行的狀態。 目前,我正在使用警報框使用戶了解狀態。 我知道,這是很老式的。 因此,我正在嘗試的是:如果狀態為“成功”,那么我將在表單頂部顯示一條消息(綠色文本),否則顯示錯誤消息(紅色)。

為此,我創建了兩個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");
}

在同一塊中,我使用了dijit.byId(“ some other component”),效果很好。

我究竟做錯了什么?

我在這里注意到幾件事。 首先,您的if代碼看起來無效(在true后面有一個' )。

然后,如果你要創建自定義部件,你不應該獲取由他們的ID,這意味着你應該使用小工具或DOM節點:

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

正確的方法是使用通過使用data-dojo-attach-point屬性創建data-dojo-attach-point 當您從dijit/_TemplateMixin mixin繼承時,可以簡單地使用: this.successNotification並且如果您也從dijit/_WidgetsInTemplateMixin繼承,則可以使用相同的語法來檢索小部件實例。

您的情況是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM