Костыль по быстрому накидал
angular.module 'KeepTeam.Common'
.service 'SynchroQ', ($rootScope) ->
_evalAsync: null
isSynchroOn: false
synchronousOn: ->
unless @isSynchroOn
@isSynchroOn = true
@_evalAsync = $rootScope.$evalAsync
$rootScope.$evalAsync = (callback) ->
callback?()
synchronousOff: ->
if @isSynchroOn
@isSynchroOn = false
if @_evalAsync
$rootScope.$evalAsync = @_evalAsync
@_evalAsync = null
и в коде
promise = $q.when()
if allItems
SynchroQ.synchronousOn()
promise.$$state.status = 1
promise.then ->
if allItems
return allItems
else
return $http.get(...)
.then ->
SynchroQ.synchronousOff()
Полезные действия...
Это выглядит очень костыльно и по хорошему, чтоб решить задачу придется сделать модифицированный сервис $q