angularjs $watch watchExpression с обещанием входит в бесконечный цикл дайджеста
Метод наблюдения angularjs с watchExpression, возвращающий обещание.
$scope.$watch(function() {
var promise = MyService.getMethod();
promise.then(function(value){
return value;
})
}, function(newValue, oldValue) {
console.log("new value:", newValue);
});
Машинописный вызов метода с обещанием.
public getMethod(): angular.IPromise<any> {
var deferred: angular.IDeferred<any> = this.$q.defer();
localforage.getItem(‘key’).then(function(value) {
deferred.resolve(value);
}).catch(function(err) {
deferred.reject();
console.log(err);
});
return deferred.promise;
}
Я хочу вернуть "значение" из обещания localforage в MyService, чтобы вернуться к функции $watch watchExpression.
1 ответ
Вы можете использовать localforage.bind для прямой привязки значения хранилища к области видимости:
localforage.bind($scope, {key: 'key', scopeKey: 'scKey'});
И использовать двустороннюю связь $scope.scKey
,