2015-10-09 4 views
0

СИТУАЦИИ:App аварии после введения ngMock

мне нужно установить angular-mocks в моем приложении Ионного но после того, как это делать, приложение разбилось. Точно после инъекции «ngMock» в зависимостях. Удалив приложение, он работал как обычно.

Я попытался установить его в новое и простое угловое приложение, и у меня такое же точное поведение.

В обоих случаях у меня нет ошибок в консоли.

установочном:

  1. Беседки установка угловых издевается
  2. включают угловой mocks.js в index.html
  3. INJECT 'ngMock'

на вопрос :

Почему угловые макеты рушится на мое приложение? Я делаю что-то неправильно?

Спасибо!

EDIT:

Это plunker где я воссоздал ту же ситуацию:

http://plnkr.co/edit/Un9xBtrm1yqG4HubEdza?p=preview

angular.module('myApp', ['myApp.controllers', 'ngMock']) 

Удаляя 'ngMock' от зависимостей перезапуска приложения, чтобы работать должным образом (простое приложение для тестирования). В противном случае приложение разбивается.

+0

Что означает «сбой моего приложения», точно? вызывает ли сообщение об ошибке? – Claies

+0

Вы включаете 'angular-mocks.js' ** после **' angular.js'? – ieaglle

+0

Да, я включаю angular-mocks.js после angular.js – johnnyfittizio

ответ

1

Короткий ответ: потому что ngMock предназначен для модульного тестирования.

Долгий ответ: потому что ngMock предназначен для модульного тестирования и не предназначен для использования в приложениях. Многие Угловые вещи насмехаются там, чтобы сделать Угловые приложения подходящими для модульного тестирования, в том числе $rootElement, который используется в качестве корневого элемента (один с ng-app) для компиляции DOM приложения после того, как модули были загружены.

Простое приложение, которое содержит единственного контроллера can be made workable by unmocking $rootElement service:

angular.module('myApp', ['myApp.controllers', 'ngMock']) 
var rootElement = angular.element(document.querySelector('[data-ng-app]')); 
angular.module('myApp').value('$rootElement', rootElement); 

Поскольку причина, почему ngMock находится здесь вовсе не был назначен, я предполагаю, что она не была использована по назначению. Используйте ngMockE2E вместо этого, если вам нужно всего лишь $http, издеваясь над живым приложением во время разработки.

Смежные вопросы