我有一个AngularJS应用程序,我想提醒或捕获以下两个返回的JSON值的消息,无论是成功还是失败。
出现两个问题。在状态代码500上,当我尝试提醒undefined
时,我无法获取返回的JSON的消息值msg
。成功后我也无法解析JSON。
网络控制台中的消息
GET inviteUsers 500 Internal Server Error
{"Message":"Users are not available"}
我需要做些什么来完成这项工作?
失败的JSON - 返回状态代码500
{"Message":"Users are not available"}
成功的JSON
{"Message": "Invitations sent successfully"}
控制器方法
$scope.inviteUsers = function(){
var msg = JSON.parse(createNewUserService.inviteUsers().query()["Message"]);
}
服务方法(方法GET)
var _inviteUsers = function(){
return $resource(serviceBase + 'inviteUsers',
{
});
};
答案 0 :(得分:1)
在失败条件下,您可以在错误回调函数中访问您的消息
var msg;
var inviteUsers = createNewUserService.inviteUsers().query();
inviteUsers.$promise.then(function(data) {
// success handler
msg = JSON.parse(data)["Message"];
}, function(error) {
// error handler
msg = JSON.parse(error)["Message"];
});
答案 1 :(得分:1)
以下有助于达到预期效果。关键是要使用angularjs承诺。
var msg;
$scope.inviteUsers = function(){
var inviteUsers = createNewUserService.inviteUsers().query();
inviteUsers.$promise.then(function(data){
msg = JSON.parse(data).Message;
notify(msg);
},
function(error){
msg = "No invitations sent";
notify(msg);
});
}
答案 2 :(得分:0)
您的div
属性错误。
所以更新一下:
Message
为:
var msg = JSON.parse(createNewUserService.inviteUsers().query()["Message"]);
更新
关于失败条件,如果有响应或响应有效,我们应先检查它。
var msg = JSON.parse(createNewUserService.inviteUsers().query()).Message;