这是我的片段, 片段没有控制器
<core:FragmentDefinition
xmlns="sap.m"
xmlns:core="sap.ui.core">
<Dialog
title="Invio report via mail">
<content>
<FlexBox
alignItems="Start"
justifyContent="Center">
<items>
<TextArea id="idMailReport" value="themail.mail.it" rows="1" cols="50" />
</items>
</FlexBox>
</content>
<beginButton>
<Button text="Ok" press="onDialogOkButton" />
</beginButton>
<endButton>
<Button text="Close" press="onDialogCloseButton" />
</endButton>
</Dialog>
</core:FragmentDefinition>
我可以设置TextArea元素的che值吗?
我尝试从控制片段的控制器设置它:
var dialogFrafment = sap.ui.xmlfragment(
"dialogFragment",
"appIntra.fragment.dialog",
this // associate controller with the fragment
);
this.getView().addDependent(dialogFrafment);
dialogFrafment.open();
this.byId("idMailReport").setValue("initial.mail.com");
你能帮助我吗?
答案 0 :(得分:6)
答案 1 :(得分:2)
我解决了!
var dialogFrafment = sap.ui.xmlfragment(
"appIntra.fragment.dialog",
this.getView().getController() // associate controller with the fragment
);
我的问题是我设置了一个片段的名称:“dialogFragment” Whitout一切都工作! ;)
答案 2 :(得分:1)
有点过时,但可能对其他人有用。当您在视图中重用片段时,请为其提供唯一ID:
var dialogFrafment = sap.ui.xmlfragment(
"dialogFragment", // this is fragment's ID
"appIntra.fragment.dialog",
...
);
检索嵌套控件的ID如下:
this.byId(sap.ui.getCore().Fragment().createId("dialogFragment", "idMailReport"));
这样,你的prepend片段的id就是你控件的id。