1

Delta -pouch プラグインをAngularJS アプリのPouchDBセットアップで動作させようとしています。

Angular のデータ サービスは次のようになります。

myApp.factory('DataService', ['$q', '$rootScope', 'PouchDB', function($q, $rootScope, PouchDB) {
  return {
    add: function(doc) {
      var deferred = $q.defer();
      PouchDB.post(doc, function(err, res) {
        $rootScope.$apply(function() {
          if (err) {
            deferred.reject(err)
          } else {
            deferred.resolve(res)
          }
        });
      });
      return deferred.promise;
    },

    list: function() {
      var deferred = $q.defer();
      return PouchDB.allDocs({include_docs: true, descending: true}, function(err, res) {
        $rootScope.$apply(function() {
          if (err) {
            deferred.reject(err)
          } else {
            deferred.resolve(res)
          }
        });
      });
      return deferred.promise;
    },

    update: function(obj) {
      var deferred = $q.defer();
        return PouchDB.save(obj, function(err, res) {
        $rootScope.$apply(function() {
          if (err) {
            deferred.reject(err)
          } else {
            deferred.resolve(res)
          }
        });
        });
     return deferred.promise;
    },

    get: function(id) {
        return PouchDB.get(id);
    },

    destroy: function() {
        PouchDB.destroy();
    }
  }
}]);

list正常にadd動作していますが、呼び出すとsave次のエラーが返されます。これは

Error: 'undefined' is not a constructor (evaluating 'new Promise(function (fulfill) {
    db.post(doc).then(function (doc) {
      fulfill(doc);
    });
  })')

正直なところ、私は Angular にまったく慣れていないので、自分が何をしているのか完全にはわかりません。どんな助けでも大歓迎です。

4

2 に答える 2

0

デルタ ポーチ (またはバニラ ポーチ) を angular コードに組み込むために使用できるfactoryngと呼ばれるオールインワンの angularjs バインディングをリリースしました。angularjsコードでデルタポーチを機能させるのに本当に役立つと思います。

また、すべての CRUD 操作をカバーしているため、 Contacts の例を参照することをお勧めします。問題が解決しない場合はお知らせください。

于 2014-09-22T02:57:56.690 に答える