2012-01-10 2 views
1
enyo.kind({ 
name: "TestDialog", 
kind: enyo.VFlexBox, 
components: [ 
    {kind: "ApplicationEvents", onLoad: "openDialog"}, 
    {kind: "ModalDialog", name: "errorDialog", caption: "Error!", components: [ 
     {kind: "HFlexBox", layoutKind: "HFlexLayout", pack: "center", components: [ 
      {content: "Oh no!", name: "errorMessage", style: "margin: 20px 0px;", className: "enyo-text-error warning-icon"} 
     ]}, 
     {kind: "Button", caption: "OK", onclick: "closeErrorDialog"} 
    ]} 
], 
openDialog: function() { 
    this.$.errorMessage.setContent("This is a sample error message"); 
    this.$.errorDialog.openAtCenter(); 
}}); 

Я не могу понять, как установить содержание этого. $. ErrorMessage.
Если я прокомментирую строку, которая пытается установить содержимое этого. $. ErrorMessage, диалоговое окно отобразится правильно с исходным контентом. Что я делаю неправильно?Не удается получить доступ к компонентам ModalDialog

Примечание: alert(this.$.errorDialog) отображает enyo.ModalDialog, как и ожидалось, но
alert(this.$.errorMessage) отображает undefined. Это справедливо для всех остальных компонентов this.$.errorMessage.

ответ

2

На самом деле, я отредактировал мой ответ:

, что контроль не будет существовать, пока диалоговое окно закрывается, если не указаны ленивые: ложные для ModalDialog. Или вы можете сделать .setContent() после .openAtCenter()

+0

Благодарим за быстрый ответ, отлично работали, как только я установил ленивый на false. – KyleMayes

Смежные вопросы