Я обертываю клиента веб-сервиса в угловое обслуживание. Данный клиент работает emmiting события для конкретных обновлений, как так:Обновление угловой области событий
app.service('AngularClient', function() {
this.info = null
this.login = function() {
client.login(loginInfo).then(function (loggedClient) {
loggedClient.on('newInfo', function (info) {
this.info = info
})
})
}
})
Контроллер использует эту услугу, и связывает его с его $scope
:
app.controller('Ctrl', function (AngularClient, $scope) {
$scope.client = AngularClient
})
Однако, каждый раз, когда 'newInfo'
событие увольняют угловой не автоматически запускает цикл digest
, поэтому я не могу контролировать, когда обновляется info
в пользовательском интерфейсе. Каков угловой способ убедиться, что это происходит каждый раз?
'$ scope' не используется по его службы' AngularClient'. apply() следует использовать где-то в другом месте. – ThiagoPXP
$ scope не используется его службой, он используется закрытием внутри контроллера. – tommybananas
Может ли обещание быть разрешено несколько раз? Событие «newInfo» постоянно срабатывает, пока есть обновления в службе. –