AngularJS抱怨没有为jquery定义初始化

时间:2015-04-17 18:42:10

标签: javascript jquery angularjs html5

加载页面时出现以下错误。

  

错误:未定义初始化   @ http://localhost:8082/js/vendor/jquery-1.11.2.js第339行> EVAL:4:3

我想用jquery的完整版替换jqLit​​e。我已经阅读了关于这个主题的几个stackoverflow问题,他们暗示所有需要的是在angularjs之前加载jquery。我通过简单地将angular.js上的jquery声明移动来完成此操作。当我这样做时,就是发生上述错误。当我将jquery移动到angularjs下面时,它不会给出错误但是我不能使用angular.element这样的东西。

我做错了什么?

至于为每个库加载javascript,我正在做的是。

<script type='text/javascript' src="js/vendor/jquery-1.11.2.js"></script>
<script type='text/javascript' src="js/vendor/angular.js"></script>

就使用jquery而不是lqlite而言,我只是尝试使用angular.element

var someElement = angular.element('#someelement');

我在DOMContentLoaded之前读了一个加载jquery的blurb。我不知道该怎么做。我知道如何为DOMContentLoaded编写事件处理程序,但我该怎么做。

1 个答案:

答案 0 :(得分:2)

编辑回答:我通常在IFFE内部的标题中注入我的JS脚本代码。您还必须确保在那里有ng-app来指定模块。最后,我确保在代码之前确实将依赖代码包含在标题中。 请参阅小提琴here

<head>
  <script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.js"></script> 
<script>
    (function() {
      var testApp = angular.module("testApp", []);
      function SomeController($scope) {
        console.log('Started controller');  
        $scope.dirPanelElement = angular.element('#some-panel');
        $scope.dirPanelElement.text('set test');
        $scope.dirPanelElementText='got "'+$scope.dirPanelElement.text()+'" from panel'         
      }
    testApp.controller("SomeController", SomeController);
   })(); // IFFE
</script>
</head>
 <body ng-app='testApp'>
  <div id="content">
   <div style="padding:50px">
    <div data-ng-controller="SomeController">
       <p align="center">Something</p>
       <div id="some-panel"></div>
       <div id="some-canvas">{{dirPanelElementText}}</div>  
    </div>
  </div>
 </div>
</body>