【发布时间】:2015-07-22 22:47:05
【问题描述】:
我正在使用 ng-resource 来执行 ajax 请求。我想发送除数据之外的额外信息。
例如,我的服务器上有一个文章实体
exports.fetchArticle = function(req, res, next) {
var article = req.article
return res.json({data: article, message: 'success fetch article'})
}
之所以打包,是因为在删除的情况下,发送数据是没有意义的,我可以return res.json({data: null, message: 'deleted successfully'})
在我的客户端,我有:
$scope.fetchArticle = function() {
Article.get({articleId: $routeParams.articleId}, function(response) {
$scope.article = response.data
$scope.ajaxSuccess = response.message
}, function(err) {
$scope.ajaxError = err.data.message
})
}
$scope.article 不再是 ng-resource 的实例,因此我无法对 $scope.article 进行进一步的请求,即这会导致错误,因为 $scope.article 是一个普通的 json 对象:
$scope.article.$update(function(response) {...})
如果我只是从服务器return res.json(article),它可以工作,但我无法发送消息。
我不从客户端生成消息而是从服务器获取消息的原因是,错误消息来自服务器,我希望成功消息与错误消息保持一致。
还有其他优雅的方式来发送消息吗?
【问题讨论】:
-
在客户端,你需要将消息和响应数据一起存储,还是你一直对消息做同样的事情? (比如记录它)
-
我向用户显示消息,例如“更新成功”。我可以从客户端创建它,但由于错误消息来自服务器,我更喜欢从服务器获取成功消息
标签: angularjs ngresource