IndexedDB回调没有更新angularjs中的UI

时间:2013-12-23 05:15:10

标签: angularjs google-chrome-app indexeddb db.js

我正在使用以下库在新的Chrome应用中访问Angularjs中的IndexedDB:https://github.com/aaronpowell/db.js

当我尝试使用以下内容在App启动时更新UI时:

db.orders.query().all().execute().done(function(results) { 
        $scope.ordercount = results.length;
});

在我的main.html中我使用了ordercount变量:

Orders : {{ordercount}}

但是,除非我执行ng-click或任何其他ng- *事件,否则UI不会更新。我只需要在加载我的应用程序时显示订单数量。我尝试了$ scope.apply(),但它抛出了错误,说apply()不可用。

请帮忙。

2 个答案:

答案 0 :(得分:2)

由于您从角度js的外侧获取值,您需要这样做,

$scope.$apply(function(){
  $scope.ordercount = results.length;
})

答案 1 :(得分:0)

您似乎从角度世界的外侧访问$ scope。如果要通知角度数据已更新,则应首先获取范围对象。

//assume you have a controller named "dbCtrl" e.g., <div id="container" ng-controller="dbCtrl"></div>
angular.element($("#container")).scope().$apply(function(){
  $scope.ordercount = result.length;
});

希望这有用。