解析公共控制器angularjs的数据

时间:2014-04-24 09:49:13

标签: javascript angularjs

只是想知道是否有任何方法可以解析未分配任何路由的控制器的数据(BaseController对所有操作都是通用的)

App.controller('BaseCtrl',function($http, Service){
    $scope.data = null;
    Service.getData(function(data){
        $scope.data = data;
    });
});

我可以在加载基本控制器之前解析Service.getData();并将其注入其中,如

var Base = App.controller('BasCtrl', function($http, BaseData){
   $scope.data = BaseData; 
});
Base.resolve = {
    BaseData:function(Service){
        return Service.getData();
    }
}

如果可能,请提供帮助。

PS:我只想在加载BaseCtrl之前准备服务中的数据并将其注入其中。

1 个答案:

答案 0 :(得分:0)

如果您的BaseCtrl已加载主页,那么您必须在加载包含BaseCtrl的javascript页面之前获取数据并将其放入window.BaseData,其他方面无论哪个加载控制器首先加载数据。

如果basectrol是第一页,那么你可以通过在单独的JS页面中立即调用的函数来实现它,并将该JS放在BaseCtrl js文件之前。

e.g。 fetchdata.js

(function() {
   window.BaseData= function() {...});
})(); 

您可以通过注入控制器的全局参数从角度控制器访问BaseData。

现在把文件放到这个订单

<script src= "fetchdata.js"></script>
<script src="basecontroller.js"></script>

您认为必须违反规则才能这样做,但无论如何,您的服务中的Angular $资源也只是Ajax实现。