Javascript 角形和袋形DB在工厂
我试图在应用程序启动时从javascript文件中加载PockDB客户机数据库,但没有创建数据库。调试器中没有控制台错误。当我尝试调试时,它似乎在下面这行失败了,因为它退出了匿名函数,不允许我进一步进入该函数 此处失败-->angular.module('app').factory(serviceId,['PockDB',createclientdb]) 知道我为什么做错了吗Javascript 角形和袋形DB在工厂,javascript,angularjs,pouchdb,Javascript,Angularjs,Pouchdb,我试图在应用程序启动时从javascript文件中加载PockDB客户机数据库,但没有创建数据库。调试器中没有控制台错误。当我尝试调试时,它似乎在下面这行失败了,因为它退出了匿名函数,不允许我进一步进入该函数 此处失败-->angular.module('app').factory(serviceId,['PockDB',createclientdb]) 知道我为什么做错了吗 (function () { 'use strict'; var serviceId
(function () {
'use strict';
var serviceId = 'clientedb';
angular.module('app').factory(serviceId, [ 'pouchdb', createclientdb]);
function createclientdb(pouchdb) {
return pouchdb.create('mydb', function callback(err, result) {
if (!err) {
alert('Successfully added a program!');
}
else {
alert('Failed added a program!');
}
});
return true;
}
});
最新错误生成未捕获异常
(function () {
'use strict';
var databasename = 'mydb';
angular.module('app.clientdb', [])
.factory('clientdb', ['pouchdb', function (pouchdb) {
return pouchdb.create(databasename, function callback(err, result) {
if (!err) {
alert('Successfully added a program!');
}
else {
alert('Failed added a program!');
}
});
}]);
});
我也有以下服务。有什么建议吗
(function () {
'use strict';
angular.module('app').factory('clientdbservice', ['pouchdb','app.clientdb',clientdbservice]);
function clientdbservice(clientdb) {
return {
adddata: function (obj) {
clientdb.put(obj)
.then(function () {
log('data added to Client DB');
})
.catch(function (error) {
log('Could not add data to Client DB');
}).finally(function () {
// Do something when everything is done
});
}
};
};
});
我并不是百分之百地了解你的错误所在,但以下几点对我有用
'use strict';
angular.module('app.clientedb', [])
.factory('clientedb', ['pouchdb', function(pouchdb) {
return pouchdb.create('mydb', function callback(err, result) {
if (!err) {
alert('Successfully added a program!');
}
else {
alert('Failed added a program!');
}
});
}]);
我还包括我的js文件
<script src="/lib/pouchdb-nightly.js"></script>
<script src="/lib/angular-pouchdb.js"></script>
看起来您在声明函数createclientdb之前使用了该函数。我得到了未捕获的异常。我将更新主要问题。“[$injector:modulerr]未能实例化模块app.clientedb,原因是:错误:[$injector:nomod]模块“app.clientedb”不可用!您可能拼错了模块名称或忘记加载它。如果注册模块,请确保指定您可能调用了您的clientdbservice,而不是app.clientedb。我可能将其命名为错误。但现在它不再引发任何错误,但不会创建DB。不会引发异常。我认为ing丢失或对此进行了注释,但到目前为止我还没有发现这种情况。您能给我发送一份您运行的测试文件副本吗?谢谢
angular.module('app', [
'pouchdb',
'app.clientedb',
])