使用Angular Js和JQuery问题

sak*_*zai 3 javascript jquery angularjs

我试图在我现有的应用程序中嵌入一个角度应用程序,它广泛使用jquery.我调用bootstrap函数的那一刻,例如

  angular.bootstrap(document.getElementById('app-grid'),['grid']);
Run Code Online (Sandbox Code Playgroud)

我收到一个奇怪的错误:

Error: $rootElement.on is not a function $LocationProvider/this.$get<@https://ajax.googleapis.com/ajax/libs/angularjs/1.2.13/angular.js:9257
........
Run Code Online (Sandbox Code Playgroud)

如果我成功删除jquery stuff角度app加载.如果有解决方法,请告诉我

jquery: 1.5.1
angularjs:1.2.13
Run Code Online (Sandbox Code Playgroud)

mus*_*_ut 7

这是jQuery你正在使用的旧版本,它不提供on包装元素的功能.如果由于遗留原因需要继续使用它,请 angularjs 之后加载它,以便angular可以使用其内部jqLite实现.


dre*_*ver 7

不加强jQueryAngular.js除非和直到它真正需要的,尽可能的使用Angular.js图书馆而言,你可以建立一个类似的插件,可以提供与jquery具有稍微不同的方法,但它是完全可能的.

请查看以下文章,了解更多Do's和Dont's


不要用AngularJS扩充jQuery

同样,不要从jQuery做X,Y和Z的想法开始,所以我只是在模型和控制器的基础上添加AngularJS.当你刚刚开始时,这真的很诱人,这就是为什么我总是建议新的AngularJS开发人员根本不使用jQuery,至少在他们习惯于"Angular Way"做事之前.

我在这里和邮件列表上看到很多开发人员使用150或200行代码的jQuery插件创建这些精心设计的解决方案,然后他们将这些代码粘合到AngularJS中,其中包含一系列令人困惑和错综复杂的回调和$ apply; 但他们最终得到它的工作!问题是,在大多数情况下,jQuery插件可以在AngularJS中以一小部分代码重写,突然之间一切都变得易于理解和直接.

最重要的是:解决问题时,首先要"在AngularJS中思考"; 如果你想不出解决方案,请向社区提问; 如果完全没有简单的解决方案,那么随时可以找到jQuery.但是不要让jQuery成为拐杖或者你永远不会掌握AngularJS.


如果我有jQuery背景,完整文章:"在AngularJS中思考"?

快乐编码:)