【问题标题】:Unknown provider: $rootscopeProvider <- $rootscope未知提供者:$rootscopeProvider <- $rootscope
【发布时间】:2013-03-29 17:29:10
【问题描述】:

我正在尝试将$scope 注入 jasmine 测试,但得到异常

Unknown provider: $rootscopeProvider <- $rootscope

我的规格文件是这样的:

describe("with data returned from NormDefinitions API", function () {
    const dummyData = [
        {"Id": 1, "Name": "Name 1", "Description": "Description 1"},
        {"Id": 2, "Name": "Name 2", "Description": "Description 1"}
    ];

    var $scope,
        mockService = {
            query: function () {
                return  dummyData;
            }
        };

    beforeEach(inject(function ($rootscope) {
         $scope = $rootscope.$new();
    }));

    it("it can be instantiated", inject(function($controller) {
        var controller = $controller("NormDefinitionsController",
            {
                $scope: $scope,
                myService : mockService
            });

        expect(controller).not.toBeNull();
    }));
});

我错过了什么?

谢谢

戴夫

【问题讨论】:

  • $rootScope 大写 S?
  • 为什么因为过于本地化而关闭?这是一个流行框架的常见错字。由于完全相同的错误,我偶然发现了这个问题,并且 3 次投票表明其他人也做了同样的事情。
  • 结束这个问题的糟糕选择。这个问题和答案为我节省了大量时间。我认为这就是 StackOverflow 的全部意义所在。
  • 完全同意这个“过于本地化”的决定是离谱的。在谷歌搜索并到达这里之前,我对这个问题猛烈抨击了一段时间。如果你想保护它免受“我也是!” cmets,请继续,但这绝不是“过于本地化”。这是一个容易犯的错误,但有一个简单的解决方案。
  • 显然只有 BanksySan 有错别字。

标签: javascript web-applications angularjs jasmine


【解决方案1】:

错字(我们所有人都会遇到):$rootScope,大写为S

有时人们会忘记注入它。然后你会得到这个错误:

ReferenceError: $rootScope is not defined

【讨论】:

  • 那些让你觉得自己像个白痴的答案。 (叹气)
  • @Ganonside 这些答案让你在 46 个人也投赞成票时感到不孤单 :)
猜你喜欢
  • 1970-01-01
  • 2017-04-28
  • 1970-01-01
  • 2013-09-27
  • 2016-11-29
  • 2018-09-28
  • 2014-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多