2016-05-13 8 views
1

Chromeのデベロッパーコンソールでデバッグしたいと思います。 IDでコンポーネントを取得したいと思います。だけでなく、DOM要素を返す必要がありSAPUI5デバッグコンソール

sap.ui.getCore().byId('targetId') 

または

myAppName.Component.getMetadata(). 

そして、私が探しているのは、モデルをつかむ方法です。

// set device model 
var oDeviceModel = new JSONModel(Device); 
oDeviceModel.setDefaultBindingMode("OneWay"); 
this.setModel(oDeviceModel, "device"); 

がどのように私は、コンソールからこれをつかむことができます。 私はComponent.jsにモデルを添付しました。

これはモデルのいくつかの名前を返しますが、マニフェスト内で定義されたものだけがデータなしで、上で説明したものは返しません。

これらのデータを取得する方法はありますか?

答えて

1

あなたはbyId方法使ってidでどのSAPUI5コントロールを取得することができます:提供されたIDは、コントロール(コンポーネント、ビュー、および複合コントロールの完全なIDは通常プレフィックスを追加する必要があります

var oControl = sap.ui.getCore().byId("ID"); 

を彼らのコンテンツに)。つまり、このコントロールのトップレベルのDOM要素に表示されるIDです。

コンポーネントはコントロールではないため、DOM内で直接見つからず、byIdメソッドでは見つかりません。
しかし、これを使用してComponentContainerを見つけて、getComponentInstanceを使用して実際のコンポーネントを入手することができます。モデル、コントロールとコンポーネント(ManagedObject継承技術のすべて)について

var oComponent = sap.ui.getCore().byId("ComponentContainerId").getComponentInstance(); 

パラメータとしてモデル名を取るgetModel方法を有しています。

モデルをコンポーネントに設定した後、コンポーネントとこのコンポーネントのコンテンツであるすべてのコントロールは、その名前を使用してモデルを取得できるはずです。

// Set the Model in the Component 
oComponent.setModel(oModel, "myModel"); 


// Get the Model from the Component 
sap.ui.getCore().byId("ComponentContainerId").getComponentInstance().getModel("myModel"); 
+0

hirseやあ、これはまた、クロスコンポーネントのために働いているのですか?完全に異なるコンポーネントを意味するか、これはローカルで定義されたコンポーネントに対してのみ有効ですか? – zyrex

+0

これは現在あなたのブラウザにあるすべてのもので動作します。 – hirse

1

また、コンポーネントを取得するために

var oComponent = sap.ui.component("componentID"); 

を使用することができます。

componentIDは、コンポーネントを作成するときに使用するIDです:

var oComponent = sap.ui.component({ 
    name: "my.Component", 
    url: "my/component/location", 
    id: "componentID" 
}); 
+0

これは機能しません。私は自動生成されたIDと、コンポーネントに追加したIDを追加しようとしました。 – Dinkheller

+0

私の編集した回答を見る – cschuff

関連する問題