2014-03-25 76 views
3

我已經添加了bower角角庫。將一個依賴關係注入到一個角度工廠並訪問該依賴關係

我遵循了角度作者的操作方法,並將兩個腳本添加到我的index.html文件和包含特定文件的files選項的karma.conf.js文件中。

如何在我的應用程序/ 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

埃米爾當我使用你的代碼,那麼我的工廠「dateFactory」實例不再創建它的總是未定義的。你知道爲什麼?請參閱上面我更新的代碼。 – Pascal

+0

我也得到這個錯誤:錯誤:[$ injector:unpr]未知的提供者:momentProvider < - moment < - dateFactory – Pascal

+0

我沒有你的代碼,現在它工作了... moment.format()未定義...和第二個你不能注入第三方腳本,只有在我發現了requireJS的情況下。 – Pascal