2013-04-08 32 views
4

我有一個AngularJS模型,其中我創建了一個名爲myService的模塊來存放我在整個應用程序中使用的一些常用代碼。我的常用工廠是我一直在添加所有方法的地方,現在我想分解它並給它們一個好名字。Angularjs訪問另一家工廠的方法

很多我的方法互相調用,所以如何調用另一個工廠的方法?

angular.module('myService', ['ngResource']) 
    .factory('test2', ($window) -> 
    return { 
     foobar:() -> 
     Common.test() 
    } 
) 
    .factory('Common', ($window) -> 
    return { 
     test:() -> 
     alert 'testing' 
    } 
) 

回答

12

你只需要注入它:

.factory('test2', function (Common) { 
    return { 
    foobar: function() { 
     Common.test(); 
    } 
    }; 
}) 
0

這是我做的和工作得很好。從Session中調用SessionPresenters。您需要將SessionPresenters作爲參數傳遞給工廠實現函數。

angular.module('tryme3App') 
    .factory('Session', function ($resource, DateUtils, SessionPresenters) { 
     return $resource('api/sessions/:id', {}, { 
      'query': { method: 'GET', isArray: true}, 
      'get': { 
       method: 'GET', 
       transformResponse: function (data) { 
        data = angular.fromJson(data); 

        var result = SessionPresenters.get({id: data.id}) 
        data.presenters = result; 
        return data; 
       } 
      }, 
      'update': { method:'PUT' } 
     }); 
    }).factory('SessionPresenters', function ($resource, DateUtils) { 
     return $resource('api/session.Presenters/:id', {}, { 
      'query': { method: 'GET', isArray: true}, 
      'get': { 
       method: 'GET', isArray: true 
      }, 
      'update': { method:'PUT' } 
     }); 
    }); 
相關問題