Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Qlik Sense mashup RequireJS添加js文件会出现错误';不是一个函数';_Javascript_Jquery_Requirejs_Qliksense - Fatal编程技术网

Javascript Qlik Sense mashup RequireJS添加js文件会出现错误';不是一个函数';

Javascript Qlik Sense mashup RequireJS添加js文件会出现错误';不是一个函数';,javascript,jquery,requirejs,qliksense,Javascript,Jquery,Requirejs,Qliksense,所以我以前从未使用过requireJS,但因为Qlik Sense在其mashup中使用它,所以我不得不以某种方式尝试它 我只是做了一个简单的引导mashup,添加了highcharts库,并在一个主题网站上购买了一个引导管理主题(name=Naut) 我将所有我可以使用的东西从购买的主题转移到简单的引导mashup(css、html、js),然后我尝试修改require.config 这就是我的require.config文件目前的样子 请记住,jQuery在requireJS文件中是默认的(

所以我以前从未使用过requireJS,但因为Qlik Sense在其mashup中使用它,所以我不得不以某种方式尝试它

我只是做了一个简单的引导mashup,添加了highcharts库,并在一个主题网站上购买了一个引导管理主题(name=Naut)

我将所有我可以使用的东西从购买的主题转移到简单的引导mashup(css、html、js),然后我尝试修改
require.config

这就是我的
require.config
文件目前的样子

请记住,jQuery在requireJS文件中是默认的(我认为Qlik Sense的开发人员在默认情况下就是这样做的)

js文件
vendor、plugins&main
是我购买的主题的javascript文件。当我把它们放到
require.config
require
中时,我开始出现错误
TypeError:$(…)。highcharts不是函数
&
TypeError:$(…)。bootstrapSwitch不是函数
,我的应用程序坏了,没有加载图表,bootstrapSwitch按钮也不工作。如果我删除它们,除了我没有主题所具有的交互性(关闭侧边栏、反弹菜单等),其他一切都可以正常工作


我是否做错了什么,或者可能是某些函数名在多个库中使用了

扩展的开始应该是这样的(属性、qlik、jquery,始终需要js依赖项,之后是可选的,但您可能需要

define(["./properties", "qlik","jquery","highcharts", "bootstrapSwitch"], 
    function(Props, qlik,$,highcharts,boostrapswitch) {
为了说明这一点,它首先使用这个部分define([“/properties”、“qlik”、“jquery”、“highcharts”、“bootstrapSwitch”])加载实际文件

这就是告诉Qlik要引入哪些JS文件(实际上不需要在文件后面放.JS)

您描述的错误发生在您没有正确地将这些js文件中的内容传递给函数时

    function(Props, qlik,$,highcharts,boostrapswitch) 
您会看到有5个参数,因为您最初传递的是5个js文件

您需要确保两个零件的顺序相同

这里是一个Qlik感知扩展的示例,我建议您检查properties.js和TalkToQlik.js,看看它应该是什么样子。

以下是该扩展的一些说明:

你好,Cookiejest,谢谢你给出了这个清晰的答案。我一直在为创建混搭和扩展的方法而努力,所以我做了一些额外的研究,并查阅了所有手册和教程。目前,我正在使用AngularJS创建我的Qlik感知环境,而不是上面示例中的功能API,我正在使用支持Qlik引擎API和Web套接字。我建议所有希望使用Qlik Sense(例如D3图表)创建Web应用程序的人都这样做,你可以更自由地做你想做的事情。我同意引擎API确实允许你获得所有功能。一旦你解决了如何通过引擎执行一个标准Json请求,就可以调用它尽管这需要对Qlik核心产品有一个基本的了解,但做任何你想做的事情和使用文档都会变得容易得多。然而,由于进入这一阶段相当复杂,我建议web开发人员而不是Qlik专家使用capabilities API。希望这些单独的API可以简化为h未来版本。我也知道Angular是一个非常流行的框架,但是在没有Angular和嵌入Qlik Sense的情况下,它完全有可能并且更容易启动和运行。对于阅读本文的任何人来说。完全同意!但是我是一名全职web开发人员,只花了一个月的时间就对Qlik Sense API有了基本的了解。我其实并不难,一切都是通过网络套接字完成的。是的,没有必要使用AngularJS,但是如果你有时间学习,就像我一样,挑战自己,使用AngularJS!
    function(Props, qlik,$,highcharts,boostrapswitch)