У меня есть Угловая фабрика, которую я использую для шаблона показательного модуля, чтобы открыть интерфейс службы. На заводе использовались другие вложенные зависимости для поддержки государственной службы, которые не включены в саму общественную службу. Я понимаю, почему приведенный ниже код сломан, но то, о чем я спрашиваю, есть, если есть стандартный шаг, чтобы выполнить это? Мне не удастся выяснить правильную модель, чтобы дать мне доступ к частным членам/функциям при вызове публичной службы. Любые указатели оцениваются. В приведенном ниже коде, если контроллер вызывает myfactory.initData();
, частные функции и вары недоступны.Угловой доступ к частным частным лицам
(function() {
'use strict';
angular.module('app').factory('myFactory', ['common', 'config', myFactory]);
function myFactory(common, config) {
var data = { cogs: [], widgets: [] };
var dep = config.dependency;
// Return this factory service definition
var service = {
data: data,
initData: initData,
reset: reset
};
return service;
function initData(forceRefresh) {
_private1(); // out of scope, not part of returned service
_private2(); // out of scope, not part of returned service
}
function _private1() {
// get cogs, from non-exposed private
dep.f1();
}
function _private1() {
// get cogs, from non-exposed private
dep.f2();
}
}
})();
Они частные по причине , Вы должны быть в состоянии проверить его из открытого интерфейса. Нет доступа к этим частным лицам. –
Я не понимаю, почему он сломан? Если вам нужен доступ к этим функциям, не делайте их закрытыми. – MinusFour
Я согласен с Хуаном и Минусом ... Это не сломлен, как указано, и они неправы по какой-то причине. Причина в том, что я не хочу раскрывать внутреннюю часть сервиса потребителям этой услуги, но мне может потребоваться повторное использование логинов с помощью службы, которую может вызывать публичный API. – pseabury