情况:

我需要在Ionic应用程序中安装angular-mocks,但安装完成后,该应用程序崩溃了。正是在依赖项中注入了“ ngMock”之后。
通过删除它,该应用程序照常运行。

然后,我尝试将其安装在新的简单的角度应用程序中,而我的行为完全相同。

在这两种情况下,我在控制台中都没有错误。

安装:


凉亭安装角-
在index.html中包含angular-mocks.js
注入'ngMock'


问题:

为什么angular角使我的应用程序崩溃?难道我做错了什么?

谢谢!

编辑:

这是我曾重蹈覆辙的笨蛋:

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

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


通过从依赖项中删除“ ngMock”,应用可以重新启动以正常工作(用于测试目的的简单应用)。否则,应用程序将崩溃。

最佳答案

简短答案:因为ngMock用于单元测试。

长答案:因为ngMock用于单元测试,并不旨在用于运行应用程序。那里有很多Angular的东西正在被模拟,以使Angular应用适合单元测试,包括$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代替。

关于javascript - 注入(inject)ngMock后应用崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33038755/

10-12 00:13
查看更多