我正在使用以下库在新的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()不可用。
请帮忙。
答案 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;
});
希望这有用。