Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular$Scope对象是否在Jquery get方法完成数据获取之前运行?_Jquery_Xml_Json_Angularjs_Get - Fatal编程技术网

Angular$Scope对象是否在Jquery get方法完成数据获取之前运行?

Angular$Scope对象是否在Jquery get方法完成数据获取之前运行?,jquery,xml,json,angularjs,get,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) { v

我有这段代码来获取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;
    });
}
<pre>{{employeeList  | json}}</pre>
问题是角度控制器不会等到get完成它的工作
我怎么能让它等着呢

如果我开始使用
Angular
,我会用Angular编写所有模块(问题较少)。正如您所知,
$http
像jQuery中的回调一样返回
promise

你可以读一下承诺是如何起作用的

顺便说一句,你可以这样写

$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;
  });
某些调试器:

{{employeeList | json}

之所以这样调用JAX,是因为它是异步的。您不应该使用jQuery Ajax,而应该使用Angularjs$http方法。