Ответ 1
Я бы предложил вам разместить ваши factory
или service
, как в angular -seed app, за исключением того, что приложение досадно использует только value
в шаблоне services.js
. Однако вы можете адаптировать макет, который они используют для контроллеров, директив и фильтров.
'use strict';
/* Filters */
angular.module('myApp.filters', []).
filter('interpolate', ['version', function(version) {
return function(text) {
return String(text).replace(/\%VERSION\%/mg, version);
}
}]);
Что означает для службы, которую вы бы сделали:
'use strict';
/* Services */
angular.module('myApp.filters', []).
service('myservice', ['provider1', 'provider2', function(provider1, provider2) {
this.foo = function() {
return 'foo';
};
}]).
factory('myfactoryprovider', ['myservice', function(myservice) {
return "whatever";
}]);
У этого есть больше шаблона, чем вам абсолютно необходимо, но он безопасен и защищает ваши пространства имен.
Чем больше вам нужно, тем лучше решать, какие из const
, value
, factory
или service
наиболее подходят. Используйте service
, если вы хотите создать один объект: он вызывается как конструктор, поэтому вы просто назначаете любые методы this
, и все будет иметь один и тот же объект. Используйте factory
, если вы хотите получить полный контроль над тем, создан или нет объект, хотя он все еще вызывается только один раз. Используйте value
, чтобы вернуть простое значение, используйте const
для значений, которые вы можете использовать в config
.