2014-10-02 7 views
0

Возможно, этот вопрос задан раньше, я сделал свои «домашние задания Google» без каких-либо результатов (в этом вопрос трудно задавать).Назначение значения обратного вызова для переменной стенограммы

Я считаю себя делать это часто с асинхронными обратными вызовами:

var wow; 
myFunction(function(something) { 
    wow = something; 
}); 

Есть сокращенное присвоить значение, содержащееся в функции обратного вызова переменного, как выше?

Я не могу изменить код myFunction.

Возможный реальный сценарий (с угловой):

$http.get(url).success(function(res) { 
    $scope.data = res; 
} 
+0

вы имеете в виду как [здесь] (http://stackoverflow.com/questions/905298/jquery-storing-ajax-response-into-global-variable)? –

ответ

0

Да, вы можете использовать функцию "сеттер", как это:

function setter(name) { 
    return function(result) { 
    $scope[name] = result; 
    }  
} 

, а затем:

$http.get(url).success(setter("data")); 

Обратите внимание, что это не будет работать с первым примером: нет возможности динамически назначать переменную.

+0

Это будет сделано. Единственным возможным способом является использование прекомпилятора, такого как Coffeescript, если у вас есть сокращенная декларация функции '->' – Alberto

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