2016-06-21 11 views
4

をwindow.parent私は、エンティティデータにアクセスするために活字体Dynamics CRMが

window.parent.Xrm.Page...etc 

を使用する必要があります。

残念ながら、私がtypescriptで書くと、この構造はコンパイルされません。今のところ私はXrm.Pageの前にwindow.parentを追加しています...(私はXrmの入力を手に入れましたが)これはTypeScriptの考え方からは非常に遠いです。 window.parent.Xrmを通常のエレガントな方法で呼び出せるような方法や入力などはありますか?私はVisual Studioを使用しています

+0

どのようなエラーが表示されますか? – zlumer

+0

プロパティ "Xrm"がタイプ "ウィンドウ"に存在しません。私はVisual Studioを使用しています – cAMPy

+0

Xrmページへの参照のみを渡すことができるようにtypescriptコードを書くと、ウィンドウオブジェクトの依存関係をすべて削除してから、コンパイルした後、CRMフォームからたとえば、window.parent.Xrm.Pageインスタンス。 – Jordi

答えて

0

window.Xrmオブジェクトを介してルート参照を取得する方法はありませんが、あなたはそれが一度だけ起こるようにカプセル化することができます。

正しいTSテンプレートを使用している場合 - すなわち:

Install-Package xrm.TypeScript.DefinitelyTyped 

それは

class Bar { 
    constructor(private xrm: Xrm.XrmStatic) {} 
    foo() { 
     //work in strongly typed world 
     //return this.xrm.Page....; 
    } 
} 

な単純なものそして、ちょうど何度も

​​
0

私が使うようにそれを初期化する必要があります(<any>window.parent).Xrm.に変更すると、エラーフリーでコンパイルできます。window.parent.Xrm。例: