D365 CE Online-全局执行上下文

时间:2019-05-17 09:25:19

标签: javascript dynamics-crm-online executioncontext

在为D365 CE(在线)更新所有的javascript文件时,我注意到我们有很多JS文件都没有从诸如OnSave,OnLoad或OnChange之类的表单事件中调用。这些文件仅由其他JS库从内部引用中调用。

由于这些文件不是在form事件上调用的,因此我必须在调用函数时传递执行上下文。 (哪个不喜欢这样做,因为我们不知道还有多少其他的JS库正在调用这些函数。此冲刺中目前只有一种解决方案)

我的问题是,如果我首先在表单上加载了一个JS库,并且此文件具有全局执行上下文,我是否可以在所有以下JS库中使用它?

例如: JSFile1-函数XYZ(eContext)-运行表单的OnLoad。 (执行上下文作为参数传递)

JSFile2-函数ABC()-不会从任何表单事件中调用,但需要执行上下文。

在JSFile1中,我声明了一个全局变量eContext,并在XYZ(eContext)函数中对其进行了初始化。

然后可以在JSFile2中以任何方式使用此全局eContext变量吗?

1 个答案:

答案 0 :(得分:1)

  1. 方法不正确 原因:最后,您将必须在从属Js中使用全局定义的表单上下文,因为您将需要在从属Js中具有此上下文以进行一些编码/事务
  2. 由于您已经在进行重构,为什么不将此Context作为参数传递给其他js,以便您有此上下文进行事务。
  3. 您还必须注意在Forms上J的顺序,即获取上下文的Js应该是第一个加载的Js。 即

    JSFile1-函数XYZ(eContext)

    SFile2-函数ABC(eContext)