4

アプリケーション全体で使用する一般的に使用されるコードを保持する myService というモジュールを作成した AngularJS モデルがあります。私の Common ファクトリは、私がすべてのメソッドを追加してきた場所であり、今はこれを分割して、適切な名前を付けたいと考えています。

多くのメソッドが相互に呼び出しを行っているため、別のファクトリにあるメソッドを呼び出すにはどうすればよいですか?

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 に答える