在我的网页中,主控制器需要通过使用$ http或getJSON从服务器调用数据来使用服务进行一些初始化。
页面中还有其他子控制器,一旦主控制器完成数据加载,就不应该调用它们。
如何在控制器中注入DI?
Edit1 ex:
类似Call Angular controller from script onload的内容
服务调用服务器获取一些数据,一旦完成,就会通知其他人。
这可能吗?
答案 0 :(得分:2)
看起来你应该查看$ scope。$ emit,$ scope。$ broadcast和$ scope。$来处理angularjs中事件的方法。
基本想法可能如下所示:
$http.get("/api/stuff", function(data)
.then(function(data){
$scope.$broadcast("apiLoad", data);
}, function(err){
//do something with err
})
然后子控制器可以使用:
$scope.$on("apiLoad", function( event, data){
//do something now that apiLoad is done.
})