我如何设置片段元素的值?

时间:2014-06-25 13:58:07

标签: sapui5

这是我的片段, 片段没有控制器

<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");

你能帮助我吗?

3 个答案:

答案 0 :(得分:6)

请尝试

sap.ui.getCore().byId("idMailReport").setValue("initial.mail.com");

它应该有用。

以下是官方document

答案 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。