2017-02-08 24 views
0

私はXMLがSAP UI5で表示する値を取得するタイミングを把握しようとしています。これはODataモデルにバインドされているので、表示する値を調べるにはread()を実行する必要があると仮定します。したがって、XMLがread()を実行した後、私のコントローラでこの情報を使用することができます。XMLはいつ表示されるのですか?

<ComboBox items="{ 
        path: '/ZSpace_EntitySet', 
        sorter: { path: 'Name' } 
       }"> 
    <core:Item key="{Value}" text="{Name}" /> 
</ComboBox> 

example.xmlので、デバッグモードで私がthis.getView().getModel().getProperty("/ZSpace_EntitySet(...)/propertyHere")をやってみましたが、それはundefinedを返します。私はonBeforeShow()onAfterShow()の両方で試しました。これらのメソッドでデバッガを一時停止し、上記の行を実行しました。

私は、XMLに値を入力した直後に実行される関数が必要であると考えています。read()を実行してXMLを設定するためです。

更新:時間onBeforeHide()によって運営され、モデルは、もちろん、存在していると私は、上記の行を実行することができます。しかし、これは遅すぎる、私はこれの前にプロパティをお読みください。

+1

"XMLは、それが価値だ取得"。 XMLは何もしません。 XMLはデータ形式の仕様です。値を取得するのが何であれ、XMLではありません。値を取得するものを見つけることは、そのような時を発見するのに役立ちます。はい、もちろんの –

+0

が、私はちょうど@StephenSがしたようなアイデアを取得しようとしていた、ありがとうしかし、私はあなたが、私はこれを忘れていた、私はチェックして、あなたが – SAPUI5GUY

答えて

0

あなたはバインディングコンボボックスにdataReceivedハンドラをアタッチすることができます。このハンドラは、コントロールのデータ要求が完了するとトリガされます。

XMLコード

<ComboBox id="cmbBox" items="{ 
       path: '/ZSpace_EntitySet', 
       sorter: { path: 'Name' } 
      }"> 
<core:Item key="{Value}" text="{Name}" /> 

コントローラー・コード

onBeforeRendering : function(){ 
     var oComboBox = this.byId("cmbBox"), 
      oBinding = oComboBox.getBinding("items"); 
     oBinding.attachDataReceived(function(){ 
      window.alert("Data Received"); 
     }); 
} 
+0

を追加するにはタイトルを考え、編集しました'value = {field}'のように簡単なバインディングでこれを行うことができるかどうかを知ることができますか?あなたのメソッドを使うと、oBindingは未定義になります。私はこのタイプのバインディングに別のメソッドを使わなければならないと思います。 – SAPUI5GUY

+0

がよさそうだお知らせしますどのようにあなたの提案 – SAPUI5GUY

+0

私はXMLバインディングを試しましたが、うまくいきませんでした。残念ながら、ドキュメントにはそれを行う方法についても言及していません。 –

関連する問題