Angularjs:使用自定义操作资源从服务器获取数据响应



我正试图从返回类似true, false或其他内容的服务器获取响应,这取决于我所做的请求,我正在开发的应用程序使用的是我创建的Restful服务器,仅出于测试目的,我让它返回truefalse,稍后我会让它返回正确的json数据。

在这里,我试图从这个代码中获得响应(我还不确定如何使用promise)

app.service('UserService', ['$resource', function($resource){
    var self = this;
    self.login = function(credentials){
        var handler = $resource('server/web/user/access', null, {
            access: {
                method: 'POST'
            }
        });
        handler.access(credentials).$promise.then(function(data){
            console.log(data);
        });
    }
}]);

现在我只是记录它从服务器返回的内容,但日志显示了另一个承诺。现在我只需要获取数据,这样我就可以创建条件、解析对象或显示它从Restful服务器返回的数据

我猜这里的问题是$resource服务在响应中需要一个对象或数组,而您的简单布尔值无法正常工作。

现在,您可以使用响应转换器来创建一个可用的对象

var self = this,
    handler = $resource('server/web/user/access', null, {
        access: {
            method: 'POST',
            transformResponse: function(val) {
                return {
                    val: val
                };
            }
        }
    });
self.login = function(credentials) {
    var promise = handler.access(credentials).$promise;
    promise.then(function(data) {
        $log.info(data.val);
    });
    return promise;
};

最新更新