Захотелось сделать общий сервис для нескольких контроллеров с одинаковым функционалам.
Могу ли я сделать передачу названия массива oldArray? Т.е. сделать что-то вроде
app.controller('ConditionsController', ['$scope', 'Conditions', 'AddProduct',
function($scope, Conditions, AddProduct) {
$scope.conditions = Conditions.query();
var oldArray = 'conditions';
var watchArray = 'conditionsAdded';
$scope.addListCondition = function (currObj, key) {
AddProduct.setList(currObj,oldArray,watchArray);
};
}]);
app.factory('AddProduct', ['$rootScope', function($rootScope) {
var List = [];
/*
/ newObg - добавление значения
oldArray - название массива
watchArray - название для прослушивания в контроллере
*/
var setList = function (newObj, oldArray, watchArray) {
oldArray.push(newObj);
$rootScope.$broadcast(watchArray);
console.log(setList);
};
var getList = function(newArray){
return newArray;
};
return {
getList: getList,
setList : setList,
};
}]);
Ну и чтобы в
oldArray.push(newObj);
вместо oldArray подставилось
conditions.push(newObj);