Не могу получить доступ к компонентам 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();
}});
Я не могу понять, как установить содержание этого. $. Errormessage.
Если я прокомментирую строку, которая пытается установить содержимое этого. $. Errormessage, диалог правильно отображается с исходным содержанием. Что я делаю не так?
Примечание: alert(this.$.errorDialog)
дисплеи enyo.ModalDialog
Как и ожидалось, но
alert(this.$.errorMessage)
дисплеи undefined
. Анкет Это верно для всех других компонентов this.$.errorMessage
также.
Решение
На самом деле, я отредактировал свой ответ:
Этот элемент управления не будет существовать, пока диалог закрыт, если вы не указаете ленивый: ложь для Modaldialog. Или вы можете сделать .setContent () после .openatCenter ()
Не связан с StackOverflow