angularjs和jquery冲突导致chrome停止响应

时间:2017-09-14 02:23:31

标签: jquery angularjs angularjs-ng-repeat ng-init

<div class="gridly-static">
  <div id={{y.id}} ng-repeat="y in Categories" ng-init="initCategories()">
    <div class="title">{{y.name}}</div>
  </div>
</div>

通过$ http.get()从api服务获取类别变量,ng-init调用initCategories是使用jquery-gridly动态重置布局。两件事的组合使我的chrome停止响应(选项卡)也根本无法关闭)

当我将类别更改为对象(不从互联网上获取)时,代码可以找到。另外,当我不使用$('xxx')。gridly()初始化布局时,它也可以。

我知道组合angularjs和jquery是一个坏主意。但是,为什么代码让chrome停止运行会使我感到困惑。(循环?由角度观察引起的东西?)

1 个答案:

答案 0 :(得分:0)

许多JavaScript库使用$作为函数或变量名,就像jQuery一样。在jQuery的情况下,$只是jQuery的别名,因此所有功能都可以在不使用$的情况下使用。如果你需要在jQuery旁边使用另一个JavaScript库,那么通过调用$ .noConflict()将$的控制权返回给另一个库。在jQuery初始化期间保存$的旧引用; noConflict()只是简单地恢复它们。

<script src="other_lib.js"></script>
<script src="jquery.js"></script>
<script>
$.noConflict();
jQuery( document ).ready(function( $ ) {
// Code that uses jQuery's $ can follow here.
});
 // Code that uses other library's $ can follow here.
</script>

有关详细信息Documentation