te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - Angular wait for promise in module.run - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Angular wait for promise in module.run - Stack Overflow

programmeradmin3浏览0评论

I'm working on an angular application and I'm using a service which should load some details from the server before the execution of the application is continued.

application.run(($myService)=>{
    myService.loadSomething() //The application should pause until the execution  of the Service
                              //is pleted until this the browser shoudl stay in a "loading state"
});

Is sometehing like this even possible?

I'm working on an angular application and I'm using a service which should load some details from the server before the execution of the application is continued.

application.run(($myService)=>{
    myService.loadSomething() //The application should pause until the execution  of the Service
                              //is pleted until this the browser shoudl stay in a "loading state"
});

Is sometehing like this even possible?

Share Improve this question asked Apr 9, 2015 at 6:27 CedCed 1,30111 silver badges31 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 8

Not in the .run - the .run function will not "block". Typically, one can use ngRoute/ui-router and use the resolve property.

If you don't want to go this route, you could create an app-level controller and "resolve" there:

.controller("AppCtrl", function($scope, loaderSvc){
   $scope.load = false;
   loaderSvc.preload().then(function(){
      $scope.load = true;
   });
});

and in the View:

<div ng-controller="AppCtrl">
  <div ng-if="::load" ng-include="'main.html'">
</div>

Get yourself familiar with $q and try to plan your application as it must not wait for anything to happen. Asynchronism is the key of every AngularJS app.

If you are using the router, get familiar with resolve, that may also help you "waiting" for data before a route/view will be shown.

I had a similar requirement and I ended up using angular-deferred-bootstrap by @philippd.

For a detailed question and thought provoking discussion plz check AngularJS : Initialize service with asynchronous data

发布评论

评论列表(0)

  1. 暂无评论