2014-03-25 2 views
3

bower와 함께 모멘트 라이브러리를 추가했습니다.각도 팩토리에 종속성을 주입하고 종속성에 액세스하십시오.

각 모멘트 작성자의 방법을 따르고 두 스크립트를 index.html 파일과 karma.conf.js 파일에 특정 파일을 포함한 files 옵션과 함께 추가했습니다.

내 app/dateFactory에서 모멘트 객체를 액세스하려면 어떻게해야합니까?

응용 프로그램/dateFactory

'use strict'; 

angular.module('clientApp', ['angularMoment']).factory('dateFactory', function() { 


    function dateRange(startDate, endDate) { 


    } 

    // Public API here 
    return { 
     dateRange: dateRange 
    } 
}); 

UPDATE => 공장 인스턴스가 정의되어이 코드를 실행!

angular.module('clientApp').factory('dateFactory', function() { 
    function dateRange(startDate, endDate) { 
     var bla = moment.format() 

     return []; 
     //return Enumerable.range(0, endDate.Subtract(startDate).Days + 1).Select(offset => startDate.AddDays(offset)).toArray(); 
    } 

    // Public API here 
    return { 
     dateRange: dateRange 
    } 
}); 

UPDATE =>이 코드를 실행하면 팩토리 인스턴스가 정의되지 않았습니다.

angular.module('clientApp', ['angularMoment']).factory('dateFactory', ['moment', function(moment) { 
    function dateRange(startDate, endDate) { 


     moment.format() //for example 

     return []; 
     //return Enumerable.range(0, endDate.Subtract(startDate).Days + 1).Select(offset => startDate.AddDays(offset)).toArray(); 
    } 

    // Public API here 
    return { 
     dateRange: dateRange 
    } 
}]); 

는 방법 그게 전부 공장이 만들어집니다 :

describe('Service: dateFactory', function() { 

    // load the service's module 
    beforeEach(module('clientApp')); 

    // instantiate service 
    var dateFactory; 
    beforeEach(inject(function (_dateFactory_) { 
    dateFactory = _dateFactory_; 
    })); 

    it('should do something', function() { 

     var data = dateFactory.dateRange(new Date(2014,1,1), new Date(2014,1,15)); 

    expect(!!dateFactory).toBe(true); 
    }); 

}); 

답변

3

당신은 당신의 공장으로 세계적인 '순간'을 주입 할 수 있습니다.

'use strict'; 

angular.module('clientApp', ['angularMoment']).factory('dateFactory', ['moment', function(moment) { 
    function dateRange(startDate, endDate) { 
     moment.format() //for example 

    } 

    // Public API here 
    return { 
     dateRange: dateRange 
    } 
}]); 
+0

Amir 내가 코드를 사용하면 내 factory "dateFactory"인스턴스가 더 이상 생성되지 않고 항상 정의되지 않습니다. 왜 그런지 알아? 위의 업데이트 된 코드를 참조하십시오. – Pascal

+0

오류 : [$ injector : unpr] 알 수없는 공급자 : momentProvider <- moment <- dateFactory – Pascal

+0

코드없이 작동하고 있습니다 ... moment.format()은 정의되지 않았습니다 ... 그리고 두 번째로 제 3 자 스크립트를 삽입 할 수 없습니다. – Pascal

관련 문제