2017-04-19 10 views
0

SAPUI5のSimpleFormにフラグメントを追加する際に問題があります。私はSimpleFormを持っていて、フラグメントのあるフォームにコンテンツを追加したいと思っています。結果は次のようになります。 what i want doneSAPUI5 - SimpleFormでフラグメントを追加

私のフラグメント:

<core:FragmentDefinition 
 
\t xmlns="sap.m" 
 
\t xmlns:core="sap.ui.core" 
 
\t xmlns:mvc="sap.ui.core.mvc" 
 
\t xmlns:html="http://www.w3.org/1999/xhtml" 
 
\t xmlns:l="sap.ui.layout" 
 
\t xmlns:f="sap.ui.layout.form" 
 
\t xmlns:tnt="sap.tnt" 
 
\t xmlns:custom="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1"> 
 

 
\t \t <core:Title text="{i18n>beauskunftung.suche.address}"/> 
 
\t \t <Label text="{i18n>beauskunftung.suche.streetNo}"/> 
 
\t \t <Input editable="false" fieldGroupIds="Address" value="{AddressStreet}" id="inputStreetID"></Input> 
 
\t \t <Input editable="false" fieldGroupIds="Address" value="{AddressStreetNumber}" id="inputNumberID"> 
 
\t \t \t <layoutData> 
 
\t \t \t \t <l:GridData span="L3 M3 S4"/> 
 
\t \t \t </layoutData> 
 
\t \t </Input> 
 
\t \t <Label text="{i18n>beauskunftung.suche.zipCity}"/> 
 
\t \t <Input editable="false" fieldGroupIds="Address" value="{AddressZipCode}" id="inputZipID"> 
 
\t \t \t <layoutData> 
 
\t \t \t \t <l:GridData span="L3 M3 S4"/> 
 
\t \t \t </layoutData> 
 
\t \t </Input> 
 
\t \t <Input editable="false" fieldGroupIds="Address" value="{AddressCity}" id="inputCityID"/> 
 

 
</core:FragmentDefinition>

私はjavacript

\t var oFragment = sap.ui.xmlfragment("testistest", "com.natuvion.ddi.fragments.select.address"); 
 
    var oLayout = this.getView().byId("AddressIDandSoOn"); 
 
    oLayout.insertContent(oFragment, -1);

でフラグメントを追加した場合

は、私は次のエラーを取得する:

キャッチされない(約束で)エラー:「エレメントsap.ui.core.Title #__ TITLE0、要素sap.m.Label #__ label0、要素sap.m.Input#testistest- -inputStreetID、要素sap.m.Input#testistest - inputNumberID、要素sap.m.Label#__ label1、要素sap.m.Input#testistest - inputZipID、要素sap.m.Input#testistest - inputCityID "ではありません要素sap.ui.layout.form.SimpleFormの集約に有効です。#__ xmlview1 - AddressIDandSoOn

問題は、addメソッドはただ1つの要素を追加できるということです。(フラグメントにラベルがあればできます!)。私は断片からすべての要素を含むべきいくつかの要素を探しましたが、私は見つけませんでした。ページ上にXMLでフラグメントを追加すると、

<core:Fragment id="addressFragment1" 
fragmentName="com.natuvion.ddi.fragments.select.address" type="XML"> 
</core:Fragment> 

が動作します。この時点で、SimpleForm内にフラグメントを追加する方法はわかりません。私は与えられたデータに応じてこれを数回追加する必要があるので、要素の動的生成が必要です。

私の質問: - フラグメントをSimpleFormに追加するにはどうすればいいですか?

答えて

0

プログラマティックAPIは、コンテンツを追加/挿入するために、配列ではなく単一の要素のみをサポートします。だから、配列をループしようとすると、一つ一つを追加することができます。

var aFragment = sap.ui.xmlfragment("testistest", "com.natuvion.ddi.fragments.select.address"); 
 
    var oLayout = this.getView().byId("AddressIDandSoOn"); 
 
    aFragment.forEach(function (oElement) {oLayout.addContent(oElement);});

あなたが考えることができます別のオプションは、sap.ui.layout.form.Formに動いています。 Form - > formContainers - > formElements - > label、fields []の内部に集約を構成しています。

)アドレスの断片が、単一FormContainerことができ、その後、あなたがaddFormContainer(の1回の呼び出しで、フォームに追加することができように見えます。

関連する問題