首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Typescript Dynamics CRM window.parent

Typescript Dynamics CRM window.parent
EN

Stack Overflow用户
提问于 2016-06-21 17:00:53
回答 2查看 1.3K关注 0票数 4

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

代码语言:javascript
复制
window.parent.Xrm.Page...etc 

访问实体数据。

不幸的是,当我在typescript中写的时候,这个结构不能编译。现在,我只是手动在Xrm.Page之前添加window.parent ...(我得到了Xrm类型),但这与TypeScript的想法相去甚远。有没有什么方法可以让我以一种正常、优雅的方式调用window.parent.Xrm?我正在使用Visual Studio

EN

回答 2

Stack Overflow用户

发布于 2017-03-07 21:14:33

我猜没有办法通过window.Xrm对象获取根引用,但是你可以封装它,使其只发生一次。

如果您使用的是正确的ts模板-即:

代码语言:javascript
复制
Install-Package xrm.TypeScript.DefinitelyTyped

它应该很简单,就像

代码语言:javascript
复制
class Bar {
    constructor(private xrm: Xrm.XrmStatic) {}
    foo() {
        //work in strongly typed world
        //return this.xrm.Page....;
    }
}

并且只需初始化一次,如下所示

代码语言:javascript
复制
var bar = new Bar(window.Xrm);  
bar.foo();
票数 0
EN

Stack Overflow用户

发布于 2017-11-09 21:42:45

我在typescript中使用(<any>window.parent).Xrm.来获得与window.parent.Xrm的无错误编译。例如:

代码语言:javascript
复制
let nameAttr = (<any>window.parent).Xrm.Page.data.entity.attributes.get("name").getValue()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37939904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档