У меня есть фабрика AngularJS для некоторых распространенных локальных манипуляций с хранилищами. Это общий набор функций против разных переменных. Я строю его так, чтобы функции повторялись в зависимости от того, какую переменную нужно манипулировать. Наверное, не изящный способ сделать это настолько открытым для вариантов.Как повторно использовать функции на заводе AngularJS?
Завод выглядит следующим образом. Есть ли способ повторного использования функций в зависимости от переменной без так много раздувания кода?
angular.module('app.datastore', [])
.factory('DataStore', function() {
var venue = angular.fromJson(window.localStorage['venue'] || '[]');
var prize = angular.fromJson(window.localStorage['prize'] || '[]');
function persist_venue() {
window.localStorage['venue'] = angular.toJson(venue);
}
return {
list_venue: function() {
return venue;
},
get_venue: function(venueId) {
for (var i=0; i<venue.length; i++) {
if (venue[i].id === venueId) {
return venue[i];
}
}
return undefined;
},
create_venue: function(venueItem) {
venue.push(venueItem);
persist_venue();
},
list_prize: function() {
return prize;
},
get_prize: function(prizeId) {
for (var i=0; i<prize.length; i++) {
if (prize[i].id === prizeId) {
return prize[i];
}
}
return undefined;
},
create_prize: function(prizeItem) {
venue.push(prizeIem);
persist_prize();
}
};
});
Ваш код после вашего первого возврата недоступен! –
Да! Я поймал эту новичковую ошибку. Я отредактировал вопрос, чтобы спросить, как фактор/повторное использование кода лучше. – zeeshan
У вас есть фабрика - теперь вы можете повторно использовать эту фабрику через свое угловое приложение, вводя его в разные контроллеры, где это необходимо. Или что еще вы хотите использовать повторно? – shershen