无法在片段对话框中获取控件

Thu*_*yen 1 javascript sapui5

我面临以下问题。我有一个片段:

<core:FragmentDefinition xmlns="sap.m" xmlns:core="sap.ui.core" xmlns:layout="sap.ui.layout" >
    <Dialog title="Hints" class="sapUiPopupWithPadding" contentWidth="60%">
        <content>
            <Table id="tblHintList" mode="SingleSelect" items="{HintList>/}" growing="true" growingThreshold="10" selectionChange="onGetSelectedHints">

            </Table>
        </content>         
    </Dialog>
</core:FragmentDefinition>
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我想通过 ID 访问表,如下所示:

var table = this.getView().byId("tblHintList");

this.getView().addDependent(Fragment)即使我打电话并且数据绑定正在工作,这也不起作用。

如何访问片段中定义的控件?

mat*_*btt 5

一般来说,您必须区分这些用例:片段是否是您视图的一部分。您正在实例化带有或不带有 ID 的片段。

在您的情况下,片段不是视图的一部分,因为它是一个对话框。在这种情况下,您将获得表控件,如下所示:

var table = sap.ui.getCore().byId("tblHintList");
Run Code Online (Sandbox Code Playgroud)

假设您使用 ID“myDialog”来实例化片段,如下所示:

var dialog = sap.ui.xmlfragment("myDialog", "my.package.HintListDialog");
Run Code Online (Sandbox Code Playgroud)

然后您将获得表控件,如下所示:

var table = sap.ui.core.Fragment.byId("myDialog", "tblHintList");
Run Code Online (Sandbox Code Playgroud)

一般来说,您应该按照之前答案中的建议自行组装控件 ID。