2015-01-19 5 views
1

У меня есть класс errorHander, который имеет следующую функцию, определенную:Javascript Настройка параметров для функций, которые прошли как В параметре

function handleError(errorData, callback, message) { 

теперь я могу передать функцию HandleError в качестве параметра в функции, которые могут принимать функция для обработки сообщения об ошибке. например:

var signboards = devicesService.query() 
     .$promise.then(function success(data) { 
      console.log(data); 
      $scope.devices = data; 
     }, errorHandler.handleError); 

Функция обратного вызова запускается и имеет первую переменную (errorData) устанавливается на любую информацию об ошибке возвращается с сервера. Функция успеха выписывается полностью, чтобы отобразить способ передачи параметров.

Проблема в том, что я хотел бы задать дополнительные параметры, определенные в моей первоначальной функции handleError. Я хотел бы установить параметры обратного вызова и сообщения.

Возможно ли это?

+0

будет ли эта функция обратного вызова и сообщение быть определено в вашем контроллере? –

+0

Я надеялся, что функция обратного вызова и сообщение будут динамическими, насколько это возможно. Поэтому добавление его в линию было бы замечательным. Возможность встроить функции «errorHandle.handleError» внутри себя будет велика. ОшибкаHandle является одноэлементной. – tensai

ответ

1

Вот демо в чистом JS, но должно быть легко портировать:

http://plnkr.co/edit/4xB5JkXPvxK4mhCW66ik?p=preview

Вы можете сделать частичное подобную вещь с функцией:

$scope.errorCallback = function(errorData, callback, message) { ... } 
$scope.errorCallbackPartial = function(callback, message) { 
    return function(errorData) { 
     errorCallback(errorData, callback, message) 
    } 
} 

Таким образом, в вашем примере ErrorHandler .handleError с errorHandler.errorCallbackPartial (someCallback, someMessage), где обратный вызов и сообщение написаны вами. Тогда он будет работать так, как ожидалось.

+0

Да, я решил, что смогу пройти этот маршрут. Полагаю, мне было интересно, можно ли связать дополнительные переменные, которые могут быть дополнительными параметрами вызываемой функции. – tensai

Смежные вопросы