Не удается получить доступ к компонентам ModalDialog

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

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

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


person Kyle Mayes    schedule 10.01.2012    source источник


Ответы (1)


Собственно, я отредактировал свой ответ:

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

person sugardave    schedule 10.01.2012
comment
Спасибо за быстрый ответ, сработало отлично, как только я установил для ленивого значение false. - person Kyle Mayes; 11.01.2012