Задать вопрос

Как передать название массива?

Захотелось сделать общий сервис для нескольких контроллеров с одинаковым функционалам.
Могу ли я сделать передачу названия массива 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);
  • Вопрос задан
  • 146 просмотров
Подписаться 2 Оценить 5 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы