通过$ resource对AngularJS进行基本身份验证

时间:2013-12-05 11:12:22

标签: angularjs

我有问题,我是AngularJS的新手,对于Rest服务,我需要验证用户,但对象是空的。

对User.mail的第一个引用是空的,但在警告框中,我有真正的价值。

请问您有什么想法吗?

.factory('Rest', ['$rootScope', '$resource', 'UserService', function($rootScope, $resource, User){
    return $resource($rootScope.services.url + ':serviceId/:itemId/', {}, {
        /** One element **/
        get: {
            method:'GET',
            headers:{
                Authorization: 'Basic ' + Base64.encode(User.mail + ':' + User.password),
                Accept: 'text/xml'
                }, 
            params:{serviceId:'', itemId:''}, 
            transformResponse: function(data) {
                alert('mail : ' + User.mail);
                var response = XmlToJson.init(data);
                if(response.length > 0) 
                    return response[0];/*in this case xmlToJson returns an array with one element*/
                else
                    return {};
            }
        },

1 个答案:

答案 0 :(得分:0)

是的,transformResponse中的$resource实际上并没有将JSON分解为对象(文档说它应该这样做)。该对象将在transformResponse方法中可用,但在$ resource服务返回时不可用。

您需要使用$http服务及其transformResponse来获取您正在寻找的行为。例如:plunker

有关完整说明,请参阅AngularJS transformResponse