Angular4找不到Jquery-UI函数
我已经安装了jquery和jquery-ui
npm install --save jquery jquery-ui
这些文件位于node_modules目录中。 我有一个声明JQuery的组件
declare var $: JQueryStatic;
我的jQuery的function工作得很好,但jQuery的用户界面function不。
$('some-div').dropdown(); // works $('window').draggable(); // draggable is not recognized as a function
所以,显然我包含jquery-ui是不正确的。 我尝试在我的.angular-cli.json页面中包含一些不同的东西,但没有成功。
我在.angular-cli文件中试过的东西:
... "scripts": [ "../node_modules/jquery/dist/jquery.min.js", "../node_modules/jquery-ui/ui/widgets/draggable.js", "../node_modules/jquery-ui/ui/draggable.js", ]
我尝试直接导入组件,但是这给$ ui定义的问题。 我也有错误,定义没有定义。
我看过npm jquery-ui和jquery -ui升级指南
任何想法,我要出错?
请像这样将jQuery ui导入到index.html中
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
并像这样在你的组件中放弃$
声明var $:any;
圣烟! 这个很麻烦,但是经过几天的努力,我发现了这个问题。
所以,这里有很多的部分答案,但这应该是完整的。 你不能从我所见过的,在你的angular度和索引中包含jquery-ui。 插件内容将被覆盖,作为一个全球性的jquery将是未定义的。 我不能通过使用angular-cli.json来实现它,但是我只是通过使用索引包含来实现它。
这里是需要做的只是使用jquery / jquery-ui的索引脚本包含。
1 :卸载jquery和jquery-ui并将其从package.json中删除
npm uninstall --save jquery jquery-ui
2 :删除node_modules文件夹
3 :在你的angular-cli.json文件中删除对jquery或jquery-ui的任何引用
4 :重buildnode_modules文件夹(仔细检查jquery-ui是否存在,但只要angular-cli.json没有包括它就没有关系。
npm install
5 :包含jquery,然后在你的索引文件中使用jquery-ui。 我用2.2.4,因为我还不信任3。
<script src="https://code.jquery.com/jquery-2.2.4.js" integrity="sha256-iT6Q9iMJYuQiMWNd9lDyBUStIq/8PuOW33aOqmvFpqI=" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
6 :你想用什么组件来使用jquery或jquery插件注入$
declare var $: any; $('draggable').draggable(); // WORKS!