Angular $ Scope Object在Jquery get方法完成获取数据之前运行?

时间:2013-09-28 12:34:08

标签: jquery xml json angularjs get

我有这个代码来获取xml数据并将其转换为json,最后将json分配给$ scope对象以供视图处理

function employeesList($scope) {
    $.get('http://www.benisuef.gov.eg/_vti_bin/owssvr.dll?Cmd=Display&List=%7B9E8B17D5-7AE8-4BC8-9068-105DA949734A%7D&XMLDATA=TRUE', function(xml) {
        var json = $.xml2json(xml, true);
        $scope.employeeList = json.data[0].row;
    });
}

问题是角度控制器不会等到完成它的工作 我怎么能让它等待??

1 个答案:

答案 0 :(得分:1)

如果我开始使用Angular,我会在Angular中编写所有模块(较少的问题)。如您所知,Angular $http返回{j}中的回调promise

您可以阅读此link承诺如何运作。

顺便说一句,你可以写点像

$scope.employeeList = $http.get('http://www.benisuef.gov.eg/_vti_bin/owssvr.dll?Cmd=Display&List=%7B9E8B17D5-7AE8-4BC8-9068-105DA949734A%7D&XMLDATA=TRUE')).then(
   function(result) {
     var json = $.xml2json(result.data, true);

   return json.data[0].row;
  });

一些调试器:

<pre>{{employeeList  | json}}</pre>