对于Angular 1,我有一个在控制器中进行的AJAX调用(因为它依赖于在路由解析期间返回的另一组数据),一旦响应返回,数据就传递给指令。由于数据在编译指令之后才会返回,因此指令最初为从控制器传递的数据获得undefined
,如果我在每个指令中观察范围值,则只获取数据。有没有更好的方法我不必使用$scope.$watch
或任何事件监听器,例如$broadcast/$on
?我不想用太多的观察者来消耗消化周期。
这是一个模拟结构:
<parent>
<directive1 data="manipulateDataReturnedFromAJAXCall"></directive1>
</parent>
//template for directive1
<div>
<directive2 ng-if="data" attr1="data.field1"></directive2>
<div>
答案 0 :(得分:-1)
如何在callback
服务中使用http
。
//Controller
MyHTTPService.getData(function(data){
$scope.manipulateDataReturnedFromAJAXCall = data;
})
//MyHTTPService service
return{
getData : function(fct){
$http.get("url/to/data").then(function(response){
fct(response.data);
})
}
}