繁体   English   中英

Dynamics 365 功能区按钮中带有 JS 的奇怪命名空间上下文行为

[英]Weird Namespacing context behavior with JS in Dynamics 365 Ribbon button

我有以下为我的 Dynamics 365 功能区按钮单击事件编写的 Javascript 代码。

var SampleNamespace = SampleNamespace || {};
SampleNamespace = {
 someVariable : 'xyz',
 clickMeFromRibbon: function(){
  // this = window in classic UI | this.iWillDoSomething() - Error
  // this = SampleNamespace in Modern UUI | this.iWillDoSomething() - Works fine
 },
 iWilDoSomething : function(){
  // Doing some other helper operations
 }
}

在功能区按钮单击我已指定要调用以下 function

SampleNamespace.clickMeFromRibbon

知道为什么this的引用有所不同,我们如何通过在两种环境中工作的有效命名空间来解决这个问题?

PS:我在 javascript 中尝试了多种不同的命名空间,但都导致了同样的问题。

您可以使用不同的方式来处理适合我的命名空间:

 var SampleNamespace = (function(){ var someVariable = "xyz"; function clickMeFromRibbon(){ //you can call iWilDoSomething from here without using namespaces } function iWilDoSomething(){ } return { clickMeFromRibbon: clickMeFromRibbon, iWilDoSomething: iWilDoSomething }; })(); //Also SampleNamespace.clickMeFromRibbon and SampleNamespace.iWilDoSomething are available externally

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM