我需要通过提供输入日期来检索服务中的输出数据。数据在服务上执行,但我无法将输出数据返回给控制器。我做了一个代码的链接。链接是 Plaunker链接在Angular中返回服务控制器的数据
0
A
回答
3
您需要return
您$http.get
和内部.then
最终修改变量,说obj
。
像这样:
return $http({
url: 'miqaat.json',
method: 'GET',
})
.then(function(response) {
var all_miqaats = response.data.response;
var obj = all_miqaats.find(function(v) {
return v.miqaat_date == dat
});
if (obj == undefined || obj == "") {
console.log("obj = ");
console.log(obj);
obj.isHoliday = "100";
// return obj;
} else {
obj.mq_title = obj.title;
obj.isHoliday = "101";
// return obj;
console.log("Data from Service");
console.log(obj);
}
return obj;
})
而且,因为它返回的承诺,在控制器,你需要将其更改为:
getMiqaat.findMiqaat($scope.date).then(function(res) {
$scope.miqaat = res;
});
无论你应该将你的.then
和catch
到controller
或不应该取决于你有多少代码reuse
。所以,直到我知道细节之后才会对此发表评论。
+0
感谢Tanmay ..这是我的工作.. –
+0
@ R.Sharma高兴我可以帮忙! :) – tanmay
1
而不是从工厂捕捉承诺。从控制器捕捉它。只在工厂内返回http。
app.controller('myCtrl', function($scope, getMiqaat) {
$scope.date = "2017-04-11";
getMiqaat.findMiqaat($scope.date)
.then(function(response) {
var all_miqaats = response.data.response;
var obj = all_miqaats.find(function(v) {
return v.miqaat_date == $scope.date
});
if (obj == undefined || obj == "") {
console.log("obj = ");
console.log(obj);
obj.isHoliday = "100";
$scope.miqaat = obj;
} else {
obj.mq_title = obj.title;
obj.isHoliday = "101";
$scope.miqaat = obj;
console.log("Data from Service");
console.log(obj);
}
})
.catch(function(response) {
response.response = "Internal Server Error!";
});;
});
app.factory('getMiqaat', function($http) {
return {
findMiqaat: function(date) {
var dat = date;
console.log(dat);
return $http({
url: 'miqaat.json',
method: 'GET',
})
}
};
})
0
使用下面提及的代码将正常工作。请确保按照您的json匹配键。
控制器代码:
var app = angular.module("myApp", []);
app.controller('myCtrl', function($scope, getMiqaat){
$scope.date = "2017-04-11";
console.log("date ::"+$scope.date);
$scope.status;
$scope.miqaat;
getMiqaatData();
function getMiqaatData() {
getMiqaat.findMiqaat($scope.date)
.then(function (response) {
$scope.miqaat = response.data.response[0];
}, function (error) {
$scope.status = 'Unable to load data: ' + error.message;
});
}
});
app.service('getMiqaat', function($http){
this.findMiqaat = function(date){
var dat = date;
console.log(dat);
return $http({
url: 'miqaat.json',
method: 'GET',
});
}
})
Json :
{
"status":true,
"message":"List of the miqaats",
"response":[
{"miqaat_date":"2017-04-11",
"mq_title":" New Year",
"isHoliday" :"101"
},
{"miqaat_date":"2017-04-09",
"mq_title":"Some Fest",
"isHoliday" :"101"
}
]
}
相关问题
- 1. 服务返回undefined控制器
- 2. AngularJS:从服务返回数据到控制器
- 3. AngularJS工厂服务不返回动态数据控制器
- 4. 应将哪些数据从服务返回给控制器?
- 5. 将数据从服务返回给控制器
- 6. 角度服务中的回调 - 如何将数据返回给控制器
- 7. 验证控制器中的返回值而不是在服务
- 8. jabber服务器返回的数据
- 9. 限制在服务器端返回的行数(强制限制)
- 10. Angular Js服务返回函数/对象?
- 11. Extjs 4如何将xml数据从服务器返回给extjs控制器?
- 12. 在服务中返回大量数据
- 13. objective-c:从服务器返回数据
- 14. 从MVC控制器返回数据返回相同的视图
- 15. AngularJS - 服务更改控制器数据
- 16. 在从控制器返回的视图中显示数据
- 17. angular,node +将SQL数据返回为json的服务
- 18. WCF /服务层/存储库层:从服务层返回DTO?并从DTO在控制器中创建ViewModel返回
- 19. 服务器响应状态为500从控制器返回GET
- 20. 测试返回Promise的Angular 2服务
- 21. Koa2服务器返回二进制数据
- 22. 如何从控制器中的嵌套函数返回数据
- 23. 服务方法应该返回什么给你的控制器
- 24. 如何在控制器中包含angular.js服务的数据?
- 25. 如何使用Angular服务在控制器/页面之间共享数据?
- 26. Angular:试图返回JSON数据在我的服务中导致错误?
- 27. Laravel 5:在控制器中返回简单数据
- 28. 从Angular 2服务返回异步数据
- 29. 在C#中通过AJAX从服务器返回数据
- 30. 使用Laravel刀片中的控制器返回的数据
https://plnkr.co/edit/4Uho7njMAXryTDOfwcLP?p=preview –
着增加与问题 –