1

angularjs watch 方法与 watchExpression 返回一个承诺。

$scope.$watch(function() {
var promise = MyService.getMethod();
promise.then(function(value){
  return value;
})
}, function(newValue, oldValue) {
console.log("new value:", newValue);
});

Typescript 调用带有 promise 的方法。

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;
}

我想从 MyService 中的 localforage 承诺返回“值”以返回 $watch watchExpression 函数。

4

1 回答 1

0

您可以使用localforage.bind直接将存储值绑定到范围:

localforage.bind($scope, {key: 'key', scopeKey: 'scKey'});

并使用双向绑定$scope.scKey

于 2016-06-28T10:02:42.497 回答