Javascript IndexedDB,如何在不重新加载页面的情况下获取更新的数据?

Javascript IndexedDB,如何在不重新加载页面的情况下获取更新的数据?,javascript,indexeddb,localforage,Javascript,Indexeddb,Localforage,我使用的是angular LocalFower,我的IndexedDB中有一些键。当我为我的键设置新值时,它似乎仍然与以前的值相同,因为我重新加载页面时,它似乎与最新的值相同 是否有任何解决方案可以在不重新加载页面的情况下获取更新的数据 $scope.addToStage=函数($index){ event.stopPropagation(); console.log($scope.items[$index].title); $localfough.getItem('stage')。然后(函数(

我使用的是angular LocalFower,我的IndexedDB中有一些键。当我为我的键设置新值时,它似乎仍然与以前的值相同,因为我重新加载页面时,它似乎与最新的值相同

是否有任何解决方案可以在不重新加载页面的情况下获取更新的数据

$scope.addToStage=函数($index){
event.stopPropagation();
console.log($scope.items[$index].title);
$localfough.getItem('stage')。然后(函数(数据){
如果(数据){
$localfollow.removietem('stage');
log('Item stage Removed!');
};
$localfough.setItem('stage',$scope.items[$index])。然后(函数(数据){
$localfollow.bind($scope,'stage');
})//设置项
})
$IonichStory.clearCache();
$state.reload();
$IonichStory.goBack();
};

**尽管我认为这不是我的代码错误,因为当我使用setItem()和removItem()添加新项目或删除主题时,需要重新加载页面以查看开发人员工具资源中的更改


**如中所述:IndexedDB最初包括异步API和同步API;但是同步版本被从规范中删除,因为它的需要是值得怀疑的。所以我认为我的问题目前还没有绝对的答案,顺便说一句,任何资源、文章和链接都是有用的

我已经创建了一个测试代码

var app = angular.module('app', ['LocalForageModule']);
app.config(['$localForageProvider', function($localForageProvider)
{
   $localForageProvider.config({
        driver      : localforage.INDEXEDDB, // if you want to force a driver
        name        : 'myApp', // name of the database and prefix for your data, it is "lf" by default
        version     : 1.0, // version of the database, you shouldn't have to use this
        storeName   : 'keyvaluepairs', // name of the table
        description : 'some description'
    });
}]);
app.controller('MyCtrl', ['$scope', '$localForage', function($scope, $localForage) 
{
    $scope.load = function()
    {
        $localForage.getItem('name').then(function(data) 
        {
            console.log('Loaded ' + data + ' from DB');
            $scope.name = data;
        });
    };

    $scope.save = function()
    {
        console.log('Saved ' + $scope.name + ' to DB');
        $localForage.setItem('name', $scope.name).then(function(){});
    };

    $scope.refresh = function()
    {
        $scope.load();
    };

    $scope.load();
}]);     
还有HTML

<div ng-controller="MyCtrl">
    Hello <input ng-model="name" type="text" /><button ng-click="save()">save</button>
    <br/><br/>
    <button ng-click="refresh()">refresh</button>
</div>    

你好,救命


刷新
全桥

您可以保存名称,当您点击刷新按钮时,它将记录从数据库检索到的值

一切正常,但Chrome开发者工具似乎没有更新。即使右键单击IndexedDB表并单击Refresh IndexedDB,该值也不会更改


在我的例子中,如果我重新加载开发人员工具,它就会改变(所以隐藏它们并再次显示)。这是一个解决办法,但我认为这是一个bug。

你能显示代码吗?@FrEaKmAn问题更新。需要其他代码?**尽管我认为这不是我的代码错误,因为当我使用setItem()和removItem()添加新项目或删除主题时,需要重新加载页面以查看开发人员工具资源中的更改。