另一个未知的提供商'对于AngularJS服务

时间:2016-10-29 16:41:55

标签: javascript angularjs

我其实不喜欢那个人,但我一直坐着这个 现在有些问题。我有这三个文件作为一部分 更大的angularjs应用。我甚至无法得到这个基本的测试 通过(甚至工作)。我一直在比较项目中的文件, 我已经在网上阅读了(尝试了人们建议的所有方式)。我有 甚至从头开始写几次文件。我可能不会 再看看我的错误了。我想这更容易发现(马上) 对于后座车手。

我非常感谢任何帮助。

gulp / karma的输出

PhantomJS 2.1.1 (Linux 0.0.0) SiteDescriptionService the service should be defined FAILED
    Error: [$injector:unpr] Unknown provider: SiteDescriptionServiceProvider <- SiteDescriptionService
    http://errors.angularjs.org/1.5.8/$injector/unpr?p0=SiteDescriptionServiceProvider%20%3C-%20SiteDescriptionService (line 4511)
    bower_components/angular/angular.js:4511:86
    getService@bower_components/angular/angular.js:4664:46
    bower_components/angular/angular.js:4516:48
    getService@bower_components/angular/angular.js:4664:46
    injectionArgs@bower_components/angular/angular.js:4688:68
    invoke@bower_components/angular/angular.js:4710:31
    workFn@bower_components/angular-mocks/angular-mocks.js:3085:26
    loaded@http://localhost:8080/context.js:151:17
    inject@bower_components/angular-mocks/angular-mocks.js:3051:28
    app/service/sitedescriptor-service-test.js:10:19
    app/service/sitedescriptor-service-test.js:4:13
    global code@app/service/sitedescriptor-service-test.js:1:9
    Expected undefined to be truthy.
    app/service/sitedescriptor-service-test.js:17:32
    loaded@http://localhost:8080/context.js:151:17

模块声明

(function(){
'use strict';

angular.module('application.service', []);

})();

服务本身

(function () {
  angular.module('application.service')
    .service('SiteDescriptorService',
         ['$http', '$q', function ($http, $q) {
         var lastRequestFailed = true,
             promise,
             items = [];

         return {
             name: 'SiteDescriptorService',

             getItems: function () {
             if (!promise || lastRequestFailed) {
                 promise = $http.get('site.json').then(
                 function (response) {
                     lastRequestFailed = false;
                     items = response.data;
                     return items;
                 }, function (response) {  // error
                     lastRequestFailed = true;
                     return $q.reject(response);
                 });
             }
             return promise;
             }
         };
         }]
        );

})();

和测试

describe('SiteDescriptionService', function() {
'use strict';

describe('the service', function() {

    var service, httpBackend;

    beforeEach(module('application.service'));

    beforeEach(inject(function(_SiteDescriptionService_, $httpBackend) {
    service = _SiteDescriptionService_;
    httpBackend = $httpBackend;
    console.log(service);
    }));

    it('should be defined', function() {
    expect(service).toBeTruthy();
    });

});
});

干杯 垫

1 个答案:

答案 0 :(得分:4)

看起来你在注入依赖时只使用了错误的名称,应该是&#39; SiteDescriptorService&#39;而不是&#39; SiteDescriptionService&#39;

相关问题