我一直在寻找几个小时,但我无法找到解决方案。我试图从我的AngularJS应用程序中的单独json文件中检索数据。使用$ http我会得到我想要的数据。
但是,我想在多个地方从该文件中获取特定数据。在服务中,我想定义一些控制器可以调用以检索数据的函数(该服务使用$ http获取)。
现在的问题是,当我将所有数据直接返回给控制器,或者稍后尝试在服务中使用它时,分配的变量是未定义的。
我尝试使用 controller-as语法,所以我不想使用$ scope。但是,我发现的每个解决方案都建议使用$ scope。此代码现在记录PaymentData
。
服务代码:
f {$$state: {...}}
控制器代码:
theApp.service('SettingsService', function($http) {
this.dataVar = $http.get('../settings.json')
.then(function(response) {
return response;
});
});
答案 0 :(得分:0)
更新: https://jsfiddle.net/md954y0a/
如何在启动模块中调用您的服务,然后通过加载相同实例的服务传递给子模块
HTML:
<div ng-app='myApp' ng-controller="myctrl">
{{parent}}
<div ng-app='myApp1' ng-controller="myctrl1">
{{myApp1data}}
</div>
</div>
JS:
angular.module('myApp', ['myApp1']).controller('myctrl', ['$scope', 'API', function($scope, API) {
$scope.parent = API.getData();
}]).service('API', function($q) {
var object = null;
this.getData = function() {
object = {
obj1: "DATA1",
obj2: "DATA2"
};
return object;
}
});
angular.module('myApp1', []).controller('myctrl1', ['$scope', 'API', function($scope, API) {
$scope.myApp1data = API.getData().obj1
}]);