IndexedDB callback not updating UI in angularjs

拈花ヽ惹草 提交于 2020-01-14 02:44:11

问题


I am using the following library to access IndexedDB in Angularjs on a new Chrome App: https://github.com/aaronpowell/db.js

When I try to update the UI on App startup by using this :

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

in my main.html I have used the ordercount variable as:

Orders : {{ordercount}}

However, the UI is not updating unless I do ng-click or any other ng-* events. All I need is to show number of orders when my app is loaded. I tried $scope.apply(), but it throws error saying apply() is not available.

Please help.


回答1:


Since you are getting the values from out side of the angular js you need to do it like this,

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



回答2:


It seems like you access $scope from out side of the angular world. You should get scope object first if you want to notify angular that the data had been updated.

//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;
});

Hope this is helpful.



来源:https://stackoverflow.com/questions/20737343/indexeddb-callback-not-updating-ui-in-angularjs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!