我有我的MainCtrl(从$ routeProvider调用,也来自html):
function MainCtrl($scope, $routeParams){
//send data(see below) to AngularTemplate for apdate page
}
我有我的功能,它可以获取任何数据:
function getData($scope, $http){
/*
* Nav Data(here my navigate-structure fo site)
*/
$http({method: 'GET', url: 'data/main.json'}).
success(function(data){
//work with data and send it to MainCtrl
});
/*
* News Data(Here my news)
*/
$http({method: 'GET', url: 'data/news.json'}).
success(function(data){
//work with data and send it to MainCtrl
});
}
现在我明白了如何使用。$ on和。$ broadcast将数据从一个Ctrl发送到另一个。但是getData不是Angular Controller(它是一个js函数)而且它没有使用我的args($ scope和$ http)。 请告诉我,如何调用getdata第一页加载并将数据发送到MainCtrl。 如果你知道,请告诉我,我可以用我的MainCtrl做什么,他只能从$ routeProvider打电话。现在起初它从html(ng-controller)调用,然后从$ routeProvider调用。
答案 0 :(得分:0)
将getData函数放在angular控制器中。 它将理解$ scope和$ http服务
或制作mainCtrl的protoype方法set()....并在其中传递$ scope.var = value
MainCtrl.prototype = {
set = function(value){
$scope=value;
}
}
答案 1 :(得分:0)
将数据包装在服务中。以下是两个很好的答案,展示了如何做到这一点:
上面的示例还说明了如何将您创建的服务(例如myService
)注入控制器。您可以根据需要将此服务注入到尽可能多的控制器中。由于Angular服务是单例服务,因此无论您的服务注入多少个控制器,都只会有一个数据获取代码实例。