gpt4 book ai didi

javascript - 注入(inject) ngMock 后应用程序崩溃

转载 作者:行者123 更新时间:2023-12-03 08:41:26 26 4
gpt4 key购买 nike

情况:

我需要安装angular-mocks在我的 Ionic 应用程序中,但完成后,应用程序崩溃了。就在依赖项中注入(inject)“ngMock”之后。通过删除它,应用程序可以正常工作。

然后我尝试将其安装在一个新鲜且简单的 Angular 应用程序中,并且我具有相同的行为。

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

安装:

  1. 凉亭安装 Angular 模拟
  2. 在 index.html 中包含 angular-mocks.js
  3. 注入(inject)“ngMock”

问题:

为什么 Angular-Mocks 会使我的应用程序崩溃?我做错了什么吗?

谢谢!

编辑:

这是一个笨蛋,我在其中重新创建了相同的情况:

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

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

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

最佳答案

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

长答案:因为 ngMock 用于单元测试,而不是用于运行应用程序。许多 Angular 的东西都被 mock ,以使 Angular 应用程序适合单元测试,包括 $rootElement ,它用作根元素(带有 ng-app 的元素)在模块引导后编译应用程序 DOM。

简单的应用程序,包含唯一的 Controller 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 出现在这里的原因根本没有被指定,所以我认为它不是故意使用的。如果您只需要在开发过程中对实时应用进行一些 $http 模拟,请使用 ngMockE2E

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com