Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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 在JQuery问题中使用Angular Js_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript 在JQuery问题中使用Angular Js

Javascript 在JQuery问题中使用Angular Js,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我正在尝试将angular应用程序嵌入到广泛使用jquery的现有应用程序中。 当我调用引导函数时,例如 angular.bootstrap(document.getElementById('app-grid'),['grid']); 我得到一个奇怪的错误: Error: $rootElement.on is not a function $LocationProvider/this.$get<@https://ajax.googleapis.com/ajax/libs/angula

我正在尝试将angular应用程序嵌入到广泛使用jquery的现有应用程序中。 当我调用引导函数时,例如

  angular.bootstrap(document.getElementById('app-grid'),['grid']);
我得到一个奇怪的错误:

Error: $rootElement.on is not a function $LocationProvider/this.$get<@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.13/angular.js:9257
........

这是您正在使用的
jQuery
的一个非常旧的版本,它没有在包装的元素上提供
on
函数。如果出于遗留原因需要继续使用它,那么在angularjs之后加载它,以便angular可以使用其内部的
jqLite
实现。

不要用
angular.js
扩充
jQuery
,除非确实需要它,就
angular.js
库的使用而言,您可以使用稍微不同的方法构建一个类似的插件,该插件可能在
jquery
中可用,但这是完全可能的

查看下面这篇文章,了解更多的注意事项


不要用AngularJS扩充jQuery

类似地,不要从jQuery执行X、Y和Z开始,因此我将在模型和控制器的基础上添加AngularJS。这在刚开始的时候很有诱惑力,这就是为什么我总是建议新的AngularJS开发人员不要使用jQuery,至少在他们习惯用“角度方式”做事之前

我在这里和邮件列表中看到许多开发人员使用150或200行代码的jQuery插件创建了这些精心设计的解决方案,然后将这些插件粘到AngularJS中,其中包含一组令人困惑和费解的回调和$apply;但他们最终还是成功了!问题是,在大多数情况下,jQuery插件可以在代码的一小部分中用AngularJS重写,突然间,所有内容都变得易于理解和直截了当

底线是:解决问题时,首先“以角度思考”;如果你想不出一个解决方案,问问社区;如果在所有这些之后都没有简单的解决方案,那么请随意使用jQuery。但不要让jQuery成为拐杖,否则你永远也无法掌握AngularJS


完整文章:


快乐编码:)

您尝试过没有冲突吗?jQuery.noConflict();在使用angular.js之前请阅读这个问题,jQuery.noConflict()不走运谢谢这篇文章,我不是在jQuery中尝试使用angular,而是尝试与jQuery并行使用,以便尽可能快地摆脱它。在此之前,我必须演示angular js的一个工作示例,但不删除jquery。@sakhunzai:这看起来是一项艰巨的工作,这样最终的解决方案就不会像您预期的那样顺利工作,您可能需要进行一些代码调整,以避免两个插件之间的冲突。最棒的是:)当你不得不使用angular中还没有的基于jquery的插件时,你会怎么做?@user20358:这是个问题,还是个复杂问题,如果你想在angular.js框架上构建一个需要这个新jquery应用程序的应用程序,那么你只能在angular.js中找不到等效插件功能的情况下才能继续使用它,否则就太过分了。在继续你的想法之前,只需进行相应的研究,因为在以后的时间里,这两个框架之间很难协调stage@user20358:实际上很少,看看这个&目前我最快的破解方法是使用
iframe
嵌入angular应用程序。在我尝试你的解决方案之前,我知道这很疯狂。感谢我将版本升级到2.1是一个很好的选择-问题解决了。
jquery: 1.5.1
angularjs:1.2.13