4

我有一个 AngularJS 模型,我在其中创建了一个名为 myService 的模块来保存一些我在整个应用程序中使用的常用代码。我的 Common factory 是我添加所有方法的地方,现在我想将其拆分并给它们起个好名字。

我的很多方法相互调用,那么我如何调用另一个工厂中的方法呢?

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

2 回答 2

12

你只需要注入它:

.factory('test2', function (Common) {
  return {
    foobar: function () {
      Common.test();
    }
  };
})
于 2013-04-08T06:36:51.280 回答
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' }
        });
    });
于 2016-02-15T03:15:26.890 回答