概述
我打算在一个jQuery应用程序中使用几个AngularJS插件。我通过保龄球安装我的jQuery插件。我使用gulp将这些依赖项放在我的主html中。在加载角数据之前加载jquery。我正在获取我获得的模板,并将其组织起来,就像John爸爸如何处理他的热毛巾AngularJS发生器一样。
问题
用于扩展jQuery的库没有被调用。这些文件是加载的,但是jQuery上的扩展名永远不会生成。例如,以这两个jQuery插件为例:非凡-引导-通知和jquery.sparkline。当加载到页面中时,这两个函数都会出现错误,说明我正在调用的函数之一来自这些库,并不存在。
我试过的
如果我在加载到浏览器中的文件中放置一个断点,我注意到上面的工厂代码确实被调用了,但是执行扩展(添加新函数)的代码没有被运行。如果我通过添加一个以前只读取remarkable-bootstrap-notify的...}(jQuery)))来修改加载到页面中的...}))文件,那么这个库就会突然开始工作。
我在jquery.sparkline库上尝试了同样的修复,但这并不能使库工作。
这显然不是一个理想的修复方法,因为下次我通过bower引入这个库时,我的更改就不再存在了,这就破坏了我的应用程序依赖于这些库的功能。
备注
我试图在指令中使用这些jQuery插件。这不是先发制人的想法,但我到处都在读到,这是解决与我相似的人的问题的方法。然而,这对我来说并没有什么不同。
更新
我现在已经将这个“修复”应用于3个库,暂时修复了这个问题(jquery.sparkline、jquery.easypiechart和引导通知)。我的问题现在有一个更新,以更具体的希望得到答复。
问题(S)
拥有一个带有AngularJS插件依赖关系的jQuery应用程序似乎并不是一件愚蠢的尝试,我认为这是相当直截了当的。我有什么能让它正常工作的东西呢?我能做些什么来处理我通过bower引入的所有依赖关系吗?
更新
现在,我的bower_components文件夹中有3个库需要手动编辑才能工作。从图形上讲,我必须添加以下内容(在下面的图像中突出显示),以便库在我的应用程序中工作:

(这只是这些典型的jQuery插件顶部出现的例子)
重新措辞的问题:当我更具体地添加...(jQuery)...时,我在做什么,而不是“我调用匿名函数,将jQuery对象作为param传递进来”。我得到了那么多。但是为什么这个不在我通过bower下载的库中呢?那我的应用程序强迫我做这些手工编辑呢?这不可能是通常使用这些图书馆的方式..。
发布于 2016-05-19 09:34:04
快速提问:你在说什么jQuery插件?为什么要尝试将jQuery代码黑客到角,在那里你通常可以找到相同或更好的插件已经为角编写。
卓越-引导-通知可以被安古拉杰-烤面包机所取代。
jquery.sparkline可以由角图代替
这是来自docs.angularjs.org的:
DOM操作
停止使用jQuery修改控制器中的DOM。真的。这包括添加元素、删除元素、检索它们的内容、显示和隐藏它们。使用内置指令,或在必要时编写自己的指令来执行DOM操作。请参阅下面有关复制功能的内容。
如果你正在努力改掉这个习惯,考虑从你的应用程序中删除jQuery。真的。Angular拥有$http服务和强大的指令,这使得它几乎总是不必要的。角的捆绑jQLite有一些最常用于编写角指令的特性,特别是绑定到事件。
https://stackoverflow.com/questions/37123528
复制相似问题