2

アプリケーションを作成していSAP Fioriます。入力値を取得する必要があるという点inputで、ボックスに入っています。dialogでダイアログを定義していfragment viewます。

for 入力を指定しようとすると、idID が重複する要素を追加するとエラーが発生します。

------ フラグメント ビュー------

<core:FragmentDefinition
  xmlns="sap.m"
  xmlns:core="sap.ui.core"
  xmlns:app="http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1">
  <Dialog title="Title"  class="sapUiPopupWithPadding" >
    <content>  
        <HBox> 
           <items> 
              <Text  text="Name"></Text> 
              <Input  value="" id="myId"  > </Input> 
           </items> 
       </HBox> 
    </content>
    <beginButton>
        <Button text="Ok"  press="DialogButton" />
    </beginButton>
</Dialog>

---コントローラーコード---

DialogButton:function(oEvent) {

   var myIdValue=sap.ui.getCore().byId("myId").getValue();

   console.log("ID Value :::"+  myIdValue);

   oDialogFragment.close();

}

ここに画像の説明を入力

4

3 に答える 3

7

ダイアログを開く必要があるたびに、新しいダイアログ フラグメント インスタンスを作成します。これにより、重複した ID の問題が発生します。コントローラーにダイアログ フラグメントのインスタンスを保持してください。

サンプル コードを参照してください。

DialogButton:function(oEvent) {
   if(!this.oDialog) {
      this.oDialog =  sap.ui.xmlfragment("you.dialog.id", this );
   }
   this.oDialog.open();
}
于 2014-08-14T07:01:04.310 に答える
1

Declarative XML または HTML Fragmentsの次のヘルプ ID を見てください 。フラグメントがインスタンス化されたときに ID を追加する必要があります。これにより、コントロールには一意のプレフィックスが付きます。

于 2014-08-14T06:27:50.227 に答える
1

フラグメントをメイン ビューに依存するものとして追加することもお勧めします。この方法では、メイン ビューが破棄されると破棄されます。また、ビューから移動して戻るときに、ID の重複エラーが発生することはありません。

DialogButton:function(oEvent) {
   if(!this.oDialog) {
      this.oDialog =  sap.ui.xmlfragment("you.dialog.id", this );
      this.getView().addDependent(this.oDialog);
   }
   this.oDialog.open();
}
于 2021-01-04T14:53:39.690 に答える