无法访问ModalDialog的组件

时间:2012-01-10 13:02:59

标签: webos enyo

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的所有其他组件也是如此。

1 个答案:

答案 0 :(得分:2)

实际上,我编辑了我的答案:

除非您为ModalDialog指定 lazy:false ,否则在关闭对话框时该控件将不存在。或者你可以在.openAtCenter()

之后执行.setContent()