报告工具中的requireJS-需要了解标准行为

问题描述 投票:0回答:1

我必须使用报告工具(IBM Cognos Analytics),该工具提供了在此报告工具创建的HTML报告中插入自定义脚本的功能。因此,我们应该能够引用jQuery,jQueryUI之类的JS库,并使用它们。报告工具中的此功能是官方的,并声明他们正在使用requirejs来处理此问题。在这种情况下(从IBM“ api”开始)我们需要遵循的代码模型如下:

define(['https://our_site/someFolder/someResource.js'], function() {

    /*
    A) - Here, I would expected that any code writtne here is executed only when "someResource.js" has been loaded
   */

function monModule() { };

monModule.prototype.setData= function() { 
    /*
            B) - some code here
            */
};      

monModule.prototype.draw= function(o) { 
    /*
            C) -  some code here
            */
};

return myObject;});

我的问题如下:

1]我目前对“定义”块中行为的理解是,只有加载/可用“定义”指令中提到的资源后,才会执行JS代码。这是对的吗?在上面的示例中,仅当加载资源“ someResource.js”时,才会“评估” /执行A)或C)中提到的部分。我理解正确吗?

2)IBM Cognos Analytics使用的RequireJs库显示以下内容:

/ ** vim:et:ts = 4:sw = 4:sts = 4* @license RequireJS 2.1.14 Dojo Foundation(c)2010-2014版权所有(c)。*可通过MIT或新的BSD许可证获得。*有关详细信息,请参见:http://github.com/jrburke/requirejs* /

然后我可以假设IBM Cognos Analytics使用的RequireJS库是“公共” /“标准”而不是派生的,因此RequireJS的所有功能和行为应在IBM Cognos Analytics中可用。

我问所有这一切,因为我们面临的问题是,在加载资源之前似乎要执行一些JS代码;我们收到类似““ $”不存在..etc ..“的错误。]

欢迎任何帮助/建议。谢谢!

requirejs
1个回答
0
投票

1)。 define()的回调仅执行一次以定义模块。因此,在您的示例中,将仅执行A),但是B)和C)是monModule]原型中方法的代码

[以下是执行define()函数时RequireJS在后台执行的步骤:

  1. 它加载异步模块的依赖项
  2. 加载依赖项时,它将执行回调,并将加载的依赖项作为参数注入。回调应返回一个定义为模块的值。
  3. 它在内部存储返回的值,因此当其他模块仅需要定义的模块时,它将作为参数注入。
  4. 2)您可以为该文件计算md5校验和,并针对“官方” RequireJS库对其进行验证

关于您得到的错误。也许您需要设置垫片以确保在需要jQuery的模块之前加载了jQuery?

© www.soinside.com 2019 - 2024. All rights reserved.