AngularJs控制器不等待$ http请求

时间:2014-09-23 08:58:23

标签: javascript angularjs asynchronous angularjs-directive promise

我是Angular的新手,对承诺有点困惑。我已经创建了一个自定义指令,该指令应该显示来自远程Web服务的信息。

这是一家负责数据检索的工厂:

myAppModule.factory('Data', function ($http)
{
    var PID = 7499;
    return $http({method: "GET", url: "http://localhost:7001/Nama/services/helloworld/bookingInit", params: {pid: PID}});
});

这是应该显示来自此服务的信息的指令:

    myAppModule.directive("timePeriods", function ()
{
    return {
        restrict: 'E',
        templateUrl: 'timePeriods.html',
        controllerAs: 'periodsCtrl',
        controller: ['Data', function (Data)
        {
            Data.success(function (res)
                                     {
                                         this.periods = res.appointments;
                                     });
        }]
    }
});

终于来了指令的模板:

<table class="table table-bordered" ng-class="'noselect'">
  <td colspan="2">
    <h4>TIMESLOTS</h4>
  </td>
  <tr ng-repeat="period in periodsCtrl.periods">
    <td>
      <div>{{period.start | date : 'hh:mm'}} - {{period.end | date : 'hh:mm'}}</div>
    </td>
  </tr>
</table>

所以我希望服务中的信息显示在一个表中,但是当页面呈现时,这个表是空的..

1 个答案:

答案 0 :(得分:0)

您需要使用范围。$申请更改才能生效。AngularJS and scope.$apply