angular:来自.run的异步进程未在.controller中结束

时间:2015-10-30 19:11:47

标签: angularjs ionic deferred

我的离子/角度应用中的逻辑存在问题。我需要一些javascript最佳实践建议。

.run中,我从服务器异步检索数据库。完成后,我写了一个包含localStorage

中信息的数组
 .run([ ....

  var promiseUpdateProDB = updateProDB.get();
  promiseUpdateProDB.then(
          function(prodata) {
              var prodata = sessionService.get('prodata');

              var imagesUrls = imagesService.manage(prodata);
              // console.log('imagesUrls in app.js :');
              // console.log(imagesUrls);
              sessionService.persist('imagesUrls', imagesUrls);
          },
          function(error) {});

然后,在.controller(' AppCtrl',....,这是我的侧边菜单的控制器,我需要这些信息写在localStorage:

app.js:

.config(function($stateProvider, $urlRouterProvider) {
  $stateProvider

    .state('app', {
      url: "/app",
      abstract: true,
      templateUrl: "templates/menu.html",
      controller: 'AppCtrl'
    })
...

controllers.js:

.controller('AppCtrl', ....
....
$scope.imagesUrls = sessionService.get('imagesUrls');
$scope.getImgPathProfileModal = function(str) {
    str = $filter('nospace')($filter('lowercase')(str));
    str = str + ".png";
    return $scope.imagesUrls[str];
}

但此时,异步过程尚未完成,$scope.imagesUrls为空....

你能帮我找出一个干净/最佳实践/强有力的方法吗?

非常感谢你的帮助。

0 个答案:

没有答案