2014-03-25 44 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