Typescript Dynamics CRM window.parent

时间:2016-06-21 09:00:53

标签: javascript typescript dynamics-crm crm typescript-typings

由于我在CRM功能中使用webresource,我需要使用

window.parent.Xrm.Page...etc 

访问实体数据。

不幸的是,正如我在typescript中写的那样,这种结构不会编译。现在我只是在window.parent之前添加Xrm.Page ...(我得到了Xrm打字)但这离TypeScript的想法很远。是否有任何方式,一些类型,让我以正常,优雅的方式调用window.parent.Xrm?我正在使用Visual Studio

2 个答案:

答案 0 :(得分: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....;
    }
}

而不仅仅是像

那样初始化它
var bar = new Bar(window.Xrm);  
bar.foo();

答案 1 :(得分:0)

我在中使用@Scheduled(cron = "59 * * * * *") 来使用(<any>window.parent).Xrm.进行无错误编译。例如:

window.parent.Xrm