Я использую PouchDB в своем приложении AngularJS.
Ниже приведены шаги, которые я выполняю для реализации/доступа к PouchDB в моем приложении AngularJS.
Установите угловую подушку через Bower:
bower install --save angular-pouchdb
Добавьте pouchdb в качестве зависимости от модуля в app.js:
var application = angular.module("application", ["ui.router", "pouchdb"]);
Внесите службу pouchdb в мое приложение:
application.factory("pouchDataAccessFactory", function (pouchdb) {
var factory = {};
var database = undefined;
factory.createDatabase = function ()
{
database = pouchdb.create("memorydb")
.then(function () { })
.catch(function () { })
.finally(function () { });
}
factory.destroyDatabase = function () {
pouchdb.destroy("memorydb");
}
factory.insert = function (product) {
database.put(product)
.then(function (response) {
// Do something with the response
})
.catch(function (error) {
// Do something with the error
})
.finally(function () {
// Do something when everything is done
});
}
return factory;
});
Звонок с HomeController
application.controller("HomeController", function ($scope, pouchDataAccessFactory) {
function initialize()
{
pouchDataAccessFactory.createDatabase();
}
debugger;
initialize();
});
Добавьте angular-pouchdb.js и добавьте ссылку в index.html
<html>
<head>
<script src="Scripts/angular.min.js"></script>
<script src="Scripts/angular-ui-router.min.js"></script>
<!--<script src="Scripts/pouchdb-3.6.0.js"></script>-->
<script src="Scripts/angular-pouchdb.js"></script>
<script src="App/app.js"></script>
<script src="App/Controllers/HomeController.js"></script>
<script src="App/Factory/PouchDBAccessFactory.js"></script>
<link href="StyleSheets/AppStyle.css" rel="stylesheet" />
</head>
<body>
<div ng-app="application" ng-strict-di>
<nav role="navigation">
<ul>
<li><a ui-sref="home">Home</a></li>
<li><a ui-sref="about">About</a></li>
</ul>
</nav>
<div ui-view>
</div>
</div>
</body>
</html>
Это дает следующую ошибку:
ReferenceError: pouchdb не определен в Object.factory.createDatabase
Я следую следующей ссылке: https://github.com/wspringer/angular-pouchdb
Из документа вы должны уважать дело: pouchDB
и не pouchdb
angular.factory('factory', function(pouchDB) {
var db = pouchDB('name');
});
Как сказано в комментарии, проверьте, если вы установите правильный скрипт в свой html-код
$window.pouchDB
часть кода, но почему$window.pouchDB