Зависимость jQuery выше Angular: ПРЕДУПРЕЖДЕНИЕ. Попытка загрузить angular более одного раза

Я работаю над папкой, созданной Yeoman Angular. Я установил через Bower модуль, требующий jQuery. Wiredep Grunt помещает зависимость jQuery выше AngularJS в index.html следующим образом:

<!-- build:js(.) scripts/vendor.js -->
<!-- bower:js -->
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-animate/angular-animate.js"></script>
...
<!-- endbower -->
<!-- endbuild -->

Это кажется разумным, так как jQuery не зависит от Angular.

Дело в том, что когда я пытаюсь загрузить свое приложение в браузере, я получаю следующее сообщение в консоли JS:

Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.
VM80711:26293 
WARNING: Tried to load angular more than once.

angular-animate.js:442 Uncaught TypeError: Cannot read property 'offsetWidth' of null

Если я вручную поменяю местами зависимость jQuery с зависимостью angular в index.html, все будет работать как чудо, но когда я grunt build свое приложение установим порядок по умолчанию, поэтому я не могу получить рабочую конфигурацию в папке dist.

bower.json:

{
  "name": "webapp",
  "version": "0.1.0",
  "dependencies": {
    "angular": "^1.3.0",
    "angular-animate": "^1.3.0",
    "angular-resource": "^1.3.0",
    "angular-sanitize": "^1.3.0",
    "angular-touch": "^1.3.0",
    "angular-ui-router": "~0.2.14",
    "angular-material": "~0.9.0",
    "restangular": "~1.5.1",
    "angular-slick": "~0.2.1",
    "ngInfiniteScroll": "~1.2.1"
  },
  "devDependencies": {
    "angular-mocks": "^1.3.0"
  },
  "appPath": "app",
  "moduleName": "app"
}

Очень ценю вашу помощь здесь!


person Alvaro    schedule 21.05.2015    source источник


Ответы (1)


альтернативы удалению/изменению порядка jquery.js:

если ваш index.html использует <ui-view />, попробуйте изменить его на это: <ui-view></ui-view> из-за того, как HTML5 обрабатывает теги, как описано в этом ТАК опубликуйте о синтаксисе тегов

во-вторых, проверьте свой routes, т.к. объясняется в этом сообщении SO о неправильной ссылке на представление:

пример: templateUrl: 'myView/myPage.html' проверьте написание и заглавные буквы

person Shehryar Abbasi    schedule 21.05.2015
comment
Спасибо, Шехриар! Проблема заключалась в <ui-view/> thing. Мне все еще интересно, почему это происходит при переключении импорта зависимостей. - person Alvaro; 22.05.2015