как вызвать угловую функцию синхронно, чтобы вернуть результат функции за пределы углового: From Outside Angular: Я пытаюсь вызвать функцию контроллера в Angular для сохранения данных -using $http-, а затем из-за пределов угловой области мне нужно использовать сохранение результат для следующего шага. вот код: от внешнего углового:
result= angular.element(divcurrency).scope().$apply('saveAll()');
if (result =="valid")
{
....
}
и функция контроллера "saveAll":
this.saveAll= function ()
{
var task = $q.defer();
$http.post(RESTUrl, $scope.dataToSave).then(function (response) {
task.resolve(response.data);
return response.data;
}, function (response) {
console.log(response.data);
task.reject(response.data);
return response.error;
});
})
return task.promise;
}
но, к сожалению, эта функция выполняется асинхронно и не может видеть возвращенный результат, и я не уверен, могу ли я использовать обещание из-за угла. Я понимаю угловую рекомендацию, используя асинхронный процесс, но в этой ситуации мне приходится ждать результата и использоваться вне углов, любая помощь будет оценена.
Вы не можете этого сделать.
Вместо этого вы должны вернуться и использовать обещание напрямую.
Термин "вне углового" не имеет смысла; вы можете использовать объекты из любого места, где хотите.