我有一個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