Прямо сейчас мой код контроллера выглядит так:
$scope.spAPI.load(id).then(function(result){
var deferred = $q.defer();
if(result !== undefined){
deferred.resolve($rootScope.$broadcast("onSpLoaded", result));
}
return deferred.promise;
}).then(function(success){
$scope.modalInstance = $modal.open({ ... });
});
Я хочу, чтобы модальный экземпляр открывался ПОСЛЕ обработки трансляций. Есть ли способ сделать это?
Обновление: я думал об этой проблеме в обратном направлении. В любом случае, я хотел сделать трансляцию после модального экземпляра, неважно.
PS: у меня действительно были проблемы с обратным вызовом modalinstance.opened, мне пришлось взломать его. Я все еще пытаюсь правильно использовать $q, мой код становится все более запутанным.
$broadcast()
является синхронной операцией, все обработчики событий должны вызываться при возврате$broadcast()
- person Ye Liu   schedule 11.02.2014