繁体   English   中英

Angularjs访问另一个工厂的方法

[英]Angularjs accessing methods in another factory

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

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

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

你只需要注入它:

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

这就是我做的和工作得很好。 从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' }
        });
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM