声明XML视图时,其所有控件ID都以视图本身的ID为前缀。
为了在控制器内部获得任何控制,必须使用:
this.byId()
...其中此默认指向控制器。
我已经知道有
sap.ui.getCore().byId()
也可用于检索JS视图中定义的控件或使用视图前缀创建的控件。
我声明了一个带有对话框和Text控件的XML片段,该控件将包含由我的控制器定义的文本。我注意到我在片段中定义的ID没有以视图的ID作为前缀。
我的问题是:是否可以将XML片段ID作为其视图ID的前缀(然后我可以使用this.byId而不是sap.ui.getCore)?
答案 0 :(得分:2)
我检查过,只有在从控制器添加片段时才会发生这种情况。
如果片段是在xml视图中的静态时间中定义的,则内容的ID从视图中派生出它们的名称。
实现这一目标的方法是确保您的片段ID来自您的视图。
代码在你的控制器中会是这样的。
oPage.addContent(new sap.ui.xmlfragment(this.createId("idFragment"), "fragmentcreation.SampleFragment"));
IdFragment =您的片段的ID
fragmentcreation.SampleFragment =片段的名称(fragmentcreation是文件夹)