Angularjs 角度索引Ddb:Firefox的问题
我在应用程序中使用AngularJS和IndexedDB。GitHub上有一个非常好的工具,它包含一个用于IndexedDB的AngularJS模块。该库称为Angular indexedDB,可以使用 当我尝试使用Firefox版本31(最新版本)打开现有应用程序时,我遇到了一些问题 打开控制台时,我看到以下消息:Angularjs 角度索引Ddb:Firefox的问题,angularjs,indexeddb,Angularjs,Indexeddb,我在应用程序中使用AngularJS和IndexedDB。GitHub上有一个非常好的工具,它包含一个用于IndexedDB的AngularJS模块。该库称为Angular indexedDB,可以使用 当我尝试使用Firefox版本31(最新版本)打开现有应用程序时,我遇到了一些问题 打开控制台时,我看到以下消息: TypeError: setting a property that has only a getter 你知道如何解决这个问题吗?要解决这个问题,我必须更改这个库的代码(我将很
TypeError: setting a property that has only a getter
你知道如何解决这个问题吗?要解决这个问题,我必须更改这个库的代码(我将很快发送pull请求) 要使其在Firefox中工作,请将第9行替换为:
解决办法很简单。如果indexedDB不在窗口中,则意味着我可以创建第一个 我已经分叉了AngularIndexedDB,并使用AngularJS$window实现了解决方案。我还发送了一个拉请求,希望它能很快被集成 我完全删除了使用全局名称空间的前两行。然后,我将实现移动到indexedDB提供程序的$get函数。现在看起来如下所示:
module.$get = ['$q', '$rootScope', '$window', function($q, $rootScope, $window) {
if(!('indexedDB' in $window)) {
$window.indexedDB = $window.mozIndexedDB || $window.webkitIndexedDB || $window.msIndexedDB;
}
var IDBKeyRange = $window.IDBKeyRange || $window.mozIDBKeyRange || $window.webkitIDBKeyRange || $window.msIDBKeyRange;
...
如果您查看,您可以找到完整的实现。只要用这个脚本替换现有脚本,它在Firefox 31中应该可以正常工作。因为我没有编写这个库,所以我不确定。从我对这段代码的理解来看,我认为这很重要,因为某些版本的浏览器似乎有不同的变量名来承载IndexedDB(例如mozIndexedDB)。你有什么建议吗?如果是这样的话,请你发一个帖子作为回答好吗?事实上你是对的。我们可以将其移动到$get,以避免污染全局名称空间。我将发布另一个答案和我的解决方案。好消息!合并请求已被批准并应用于项目。
module.$get = ['$q', '$rootScope', '$window', function($q, $rootScope, $window) {
if(!('indexedDB' in $window)) {
$window.indexedDB = $window.mozIndexedDB || $window.webkitIndexedDB || $window.msIndexedDB;
}
var IDBKeyRange = $window.IDBKeyRange || $window.mozIDBKeyRange || $window.webkitIDBKeyRange || $window.msIDBKeyRange;
...