我真的很討厭成爲那個人,但我一直在坐這個問題好幾天了。我將這三個文件作爲 更大的angularjs應用程序的一部分。我甚至無法獲得這個基本測試 通過(甚至工作)。我一直在比較項目中的文件, 我已經在線閱讀(嘗試所有人們建議的方式)。我有 甚至幾次從頭開始寫文件。我可能不能 看到我的錯誤了。我猜這是更容易發現(馬上) 後座司機。另一個AngularJS服務的'未知提供商'
我非常感謝任何幫助。
從一口輸出/因緣
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
[email protected]_components/angular/angular.js:4664:46
bower_components/angular/angular.js:4516:48
[email protected]_components/angular/angular.js:4664:46
[email protected]_components/angular/angular.js:4688:68
[email protected]_components/angular/angular.js:4710:31
[email protected]_components/angular-mocks/angular-mocks.js:3085:26
[email protected]://localhost:8080/context.js:151:17
[email protected]_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 [email protected]/service/sitedescriptor-service-test.js:1:9
Expected undefined to be truthy.
app/service/sitedescriptor-service-test.js:17:32
[email protected]://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();
});
});
});
個
乾杯 墊
檢查服務名稱 – coolguy
只是事後的想法,你有沒有嘗試過的打字稿 – Maccurt
我我已經看到了它,我確實喜歡「更嚴格」的JavaScript思想,但是我的微軟技術歷史讓我猶豫不決。你猜我喜歡嗎? – Mats