在我的angularjs应用程序中,我只想加载一个庞大的数据列表,并在控制器之间共享它。 所以我有一个工厂通过http:
检索数据 routes.MapRoute(
name: "Edit",
url: "Edit",
defaults: new { controller = "Home", action = "Edit" }
);
我试过了:
angular.module('app').factory('reportFactory', ['$http', function ($http) {
var reportFactory = {};
reportFactory.endPoint = 'ajax.php';
reportFactory.getHugeData = function () {
return $http.get(this.endPoint + '?query=CourseListQuery');
};
return reportFactory;
}]);
但是当我在我的控制器中尝试访问angular.module('app').factory('CommonData', ['reportFactory', function CommonDataFactory(reportFactory) {
var data = {};
reportFactory.getHugeData().then(function (response) {
data.courses = response.data;
}, function (error) {
});
return data;
}]);
时,我得到log.warn(CommonData.courses);
我想存储该承诺的结果,以便将其提供给我的所有angularjs应用。
如何构建那个以及在何处进行将检索数据的唯一调用?
答案 0 :(得分:0)
使用提供商。
angular.provider("CommonData", [function() {
this.commonData = {};
this.setCommonData = function(commonData) {
this.commonData = commonData;
};
this.getCommonData = function() {
return this.commonData;
};
}]);
然后在控制器中:
angular.controller("ExampleController", ['CommonDataProvider', function(CommonDataProvider) {
var commonData = CommonDataProvider.getCommonData();
}]);