2013-08-06 2 views
0

내가 각도와 DI를 사용하기 위해 노력하고있어,하지만 오류를 얻을 나는이 붙어있어각도 DI 알 수없는 공급자 오류

다음
Error: Unknown provider: dataServiceProvider <- dataService 

내 Main.js입니다 :

var app = {}; 

app.angularModule = angular.module('TestWeb', []); 

app.angularModule.value("breeze", window.breeze); 
app.angularModule.value("toastr", window.toastr); 

여기에있다 내 로거의 일부 :

,691 : 여기

app.angularModule.factory('logger', function (toastr, $window) { 

    toastr.options.timeOut = 2000; // 2 second toast timeout 
    toastr.options.positionClass = 'toast-bottom-right'; 

    var logger = { 
     error: error, 
     info: info, 
     success: success, 
     warning: warning, 
     log: log // straight to console; bypass toast 
    }; 

내 DataService의의 일부입니다 다음은 363,210

app.angularModule.factory = ('dataService', function (breeze, logger) { 

    breeze.config.initializeAdapterInstance("modelLibrary", "backingStore", true); 


    var mbservice = new breeze.DataService({ 
     serviceName: "http://localhost:23758/api/", 
     hasServerMetadata: false, 
    }); 

    var manager = new breeze.EntityManager({ dataService: mbservice }); 

    manager.enableSaveQueuing(true); 

    var dataService = { 
     getAll: getAll, 
     createItem: createItem, 
     saveChanges: saveChanges, 

    }; 

는 일부 내 샘플 컨트롤러 :

app.angularModule.controller('testCtrl', function($scope, breeze, dataService, logger) { 

    $scope.items = []; 

    $scope.getAll = function() { 
     dataService.getAll("tests") 
      .then(querySucceeded) 
      .fail(queryFailed); 
    }; 

    $scope.getAll(); 

그리고 여기에 HTML의 일부입니다

여기

가 전체 오류

Error: Unknown provider: dataServiceProvider <- dataService 
    at Error (<anonymous>) 
    at http://localhost:7122/Scripts/angular/angular.js:2734:15 
    at Object.getService [as get] (http://localhost:7122/Scripts/angular/angular.js:2862:39) 
    at http://localhost:7122/Scripts/angular/angular.js:2739:45 
    at getService (http://localhost:7122/Scripts/angular/angular.js:2862:39) 
    at invoke (http://localhost:7122/Scripts/angular/angular.js:2880:13) 
    at Object.instantiate (http://localhost:7122/Scripts/angular/angular.js:2914:23) 
    at http://localhost:7122/Scripts/angular/angular.js:4805:24 
    at http://localhost:7122/Scripts/angular/angular.js:4384:17 
    at forEach (http://localhost:7122/Scripts/angular/angular.js:137:20) angular.js:5754 
(anonymous function) angular.js:5754 

참고 :

다음은 breeze 샘플 ToDO DI와의 각도 : link이고 DI는 그대로 사용하고 있습니다. 그러나 나는 오류를 얻고, 이유를 모른다.

+0

'app.angularModule.factory = ('dataService', function (breeze, logger) {'는 공장 시절의 구문이 유효하지 않습니다.) – Stewie

답변

2

주의하여 로거 공장의 정의와 데이터 서비스 공장 사이의 차이 :

app.angularModule.factory('logger', function (toastr, $window) { 

대 당신이 그랬던 것처럼 데이터 서비스 공장 같은 방식으로 정의되어야한다

app.angularModule.factory = ('dataService', function (breeze, logger) { 

로거 팩토리와 함께.

+0

대답 해 주셔서 감사합니다. 나는 실독증과 설득력이 있으며 실제로 2 분 동안 5 분 동안 쳐다 봤습니다. 내가 알아 차리기 전에 선 = ' – hyperN

관련 문제