我是angularJS的新手,试图创建自己的自定义服务,我在这里使用$ http方法是我的代码
************* HTML *********
<div ng-app="dummyApp">
<div ng-controller="myserctrl">
<label>My label</label>
{{resData}}
</div>
************* Ctrl *********
var myreq = angular.module("dummyApp", []);
myreq.controller('myserctrl', function($scope, myService, $rootScope) {
$scope.resData = result.data.content;
});
*************服务*********
myreq.service("myService", function($rootScope, $http){
$rootScope.result = {};
$http.get('https://api.myjson.com/bins/dtm5r')
.then(function (data) {
result = data;
console.log($rootScope.result);
})
.then(function (data){
console.log("the Data is error")
})
});
我的电话正在进行,我得到了成功的结果,但是我在控制器中遗漏了一些内容,因为我没有在html中获取正确的数据可以帮助我
由于
答案 0 :(得分:3)
myreq.service("myService", function($rootScope, $http){
// $rootScope is persistent but it is not available
this.getData = function(){
return $http.get('https://api.myjson.com/bins/dtm5r');
}
});
var myreq = angular.module("dummyApp", []);
myreq.controller('myserctrl', function($scope, myService, $rootScope) {
myService.getData().then(function (data) {
$scope.resData = data;
console.log($rootScope.result);
});
});
我建议您完成AJAX的异步性以及承诺,这些应该可以帮助您更好地理解行为。
答案 1 :(得分:0)
在控制器中更改
$scope.resData = result.data.content;
到
$scope.resData = $rootScope.result.data.content;
并在你的
将result = data;
更改为$rootScope.result = data;