Ich versuche, zwei Klassen zu haben (factorys) in meinem Modulangularjs werksinterne Funktionen nicht fabrikabhängig?
angular.module('starter.services', [])
.factory("TPreferences",function($cordovaSQLite){
_set = function(pName, pValue){
console.log("Setting: "+pName+":"+pValue);
}
_addList = function(pList){
for(var p=0; p < pList.length; p++)
{
_set(pList[p].name, pList[p].value);
}
}
return {
init: function(){
_addList(gSettings);
}
}
})
.factory("TDayList",function($cordovaSQLite){
_add = function(pName, pValue){
console.log("Day: "+pName+":"+pValue);
}
_addList = function(pList){
for(var p=0; p < pList.length; p++)
{
_add(pList[p].name,pList[p].value);
}
}
return {
init: function(){
_addList(gExampleDays);
}
};
});
Problem: Wenn TPreferences.init() aufgerufen wird, "Tag: ..." angemeldet ist. Ich nahm an, dass ".factory (...)" - Stuff eine Klasse sein soll, wobei _addList eine geschützte Funktion ist, aber anscheinend scheint _addList (zumindest modulweit) global zu sein und wird von der zweiten Definition überschrieben mit dem gleichen Namen, obwohl in einer anderen Fabrik.
Frage: Sicher, ich könnte in diesem Beispiel einfach den Namen einer der Funktionen ändern, aber ich würde eher eine Fabrik wie eine Klasse behandeln, so dass ich Namen von internen Funktionen zweimal verwenden kann. Also, was wäre der klügste Weg dazu?
Es kann so einfach sein :) Vielen Dank –