У меня есть функция внутри моего контроллера для создания ngResource
app.controller 'CalculationsCtrl', ($scope, Calculation)->
$scope.save = ()->
$scope.busy = true
Calculation.create($scope.calculation,
(successResult)->
console.log ("sucess")
, (failResult)->
console.log ("failrue")
console.log("code after callbacks")
$scope.busy = false
Я хочу выполнить код ниже console.log("code after callbacks")
после выполнения .create
callbacks.
Я попытался использовать. .then
но похоже, что ngResource не поддерживает его.
Calculation.create(...).then is not a function
.
Что такое эквивалентность .then
для ngResource?
Calculation.create(...).then is not a function.
возвращается, потому что обратные вызовы возвращают "strings"
(из console.log
).
Обратный вызов должен возвращать ответ сервера.
app.controller 'CalculationsCtrl', ($ scope, Calculation) ->
$scope.save = ()->
$scope.busy = true
Calculation.create($scope.calculation,
(successResult)->
console.log ("sucess")
successResult
, (failResult)->
console.log ("failrue")
failResult
).$promise.then(
function(succes){$scope...},
function(fail){$scope...}
)
Экземпляр $resource
(в вашем случае Calculation
) имеет свойство $promise
которое вы можете использовать. .then
как обычно:
Calculation.create($scope.calculation).then(function (response) {
...
});
Последний пример в документах также показывает вам, как это делается.
Угловой ресурс $ возвращает обещание, которое вы можете использовать.
Calculation.create().$promise.then( function( response ) {
console.log("success");
}, function( error ) {
console.log("error");
);
console.log("code after callbacks")
?