angular js内容未包含在返回资源对象中

时间:2015-04-10 00:31:49

标签: angularjs angularjs-resource

我有一个angular的服务类调用我的后端并获取userInfo作为对象。我的角度服务类有以下几点。

 var userResource = $resource(coreURL+'getFullProfile', {}, {
            getUserInfo: {
                method: 'POST'
            }
userService.getUserInfo = function (userObj) {
            var res = userResource.getUserInfo();
            var promises = res.$promise;
            return promises;
        }

我的控制器类有以下内容。

promise = userService.getUserInfo();
                promise.then(function (response) {
                    $scope.user = response;
               });

我的后端服务返回一个对象。

我的问题是我从后端获取用户信息对象,但它未正确包裹在对象内。该对象与一些角度变量混淆。我没有response.data。响应对象本身就有所有信息。

$promise: Objectcatch: function (callback) {finally: function (callback) {then: function (callback, errback, progressback) {__proto__: 
Object
$resolved: true
about: "sdadsf"
country: "India"
creationDate: "2015-04-07"
email: "user3"
id: 3
industries: Array[2]
name: "user3"
phoneNo: 0
progressLevel: 1

以上回复包含我的对象中的$ promise和$ resolved。如何将我的数据作为对象单独获取。

controller.js

(function(){     var userController;

userController = function ($scope, userService, searchService) {
    var delegate;
    var masterUser;
    $scope.user = {};

    $scope.newEducation = [];
    $scope.newProfession = [];
    $scope.editMode=false;
    $scope.hospitals=[];
    $scope.yearOptions={
        'year-format': "'yy'",
        'starting-day': 1,
        'datepicker-mode':"'year'",
        'min-mode':"year"
    };
    $scope.hospit=function(){
        promise = userService.getHospitals();
        promise.then(function (response) {
            $scope.hospitals = response.data;

        });
    };

    delegate = {
        getUserInfo: function () {
            userService.getUserInfo(this.onGetUserData,this.onGetError);

        },
        onGetUserData :function(data){
            var usr = (new dcuser(data));
            $scope.user = usr;
            $scope.masterUser = angular.copy(usr);
        },
        onGetError :function(data){
            alert("error");
        },
        saveUserInfo:function(){
            alert('saveUserInfo');
            userService.saveUserInfo($scope.user,this.onSaved);
        },
        onSaved:function(){
            $scope.editMode=false;
        },
        enableEdit:function(){
            $scope.editMode = true;
        },
        cancelEdit:function(){
            angular.copy($scope.masterUser, $scope.user);
            $scope.editMode = false;
            delegate.getUserInfo();
        },
        getIndustries :function(){
            alert("getIndustries");
        },
        searchHospitals :function(){
           searchService.searchHospitals("a",this.onGetHospitals);
        },
        onGetHospitals :function(data){
          $scope.hospitals = data;
        },
        searchMedicalSchools :function(){
            searchService.searchMedicalSchools("a",this.onGetMedicalSchools);
        },
        onGetMedicalSchools :function(data){
          $scope.medicalSchools = data;
        },
        connectUser:function(user){
            alert("connectUser");
            userService.connectUser(user,this.onConnectSuccess,this.onGetError);
        },
        onConnectSuccess:function(){
            alert("connection request sent");
        },

        initProfieCompletion: function(){
            alert("in");
            $scope.user.profession = [];
            $scope.user.profession.push({
                "hospital": "as",
                "speciality": "as",
                "fromDate": "",
                "toDate": ""
            });

            promise = userService.getHospitals();
            promise.then(function (response) {
                $scope.hospitals = response.data;

            });

        },



        addEducation:function(){
            $scope.newEducation.push({
                "medicalSchool": "",
                "speciality": "",
                "degree": "",
                "graduatedYear": ""
            });
        },
        addProfession:function(){
            $scope.newProfession.push({
                "hospital": "",
                "speciality": "",
                "fromDate": "",
                "toDate": ""
            });
        }




    };
    return $scope.delegate = delegate;

}

dc.userModule.controller('userController', userController);

})调用(这);

service.js

 (function () {
        "use strict";

        dc.app.service('userService', ['$rootScope','$resource', '$http', function ($rootScope,$resource, $http) {

            var userService = {};
            var coreURL = $rootScope.coreURI+'user/';

            var userResource = $resource(coreURL+'getFullProfile', {}, {
                getUserInfo: {
                    method: 'GET'
                },
                saveUserInfo: {
                    method: 'POST',
                    url: coreURL+'updateUserInfo'
                }

            });

            var connectResource = $resource(coreURL + 'connectRequest',{}, {
                connectUser: {
                    method: 'POST'
                }
            });

            var userPhotoResource = $resource(coreURL + 'uploadPhoto', {}, {
                uploadPhoto: {
                    method: 'POST'
                }
            });

            userService.getUserInfo = function (onSuccess,onFailure) {
                return(userResource.getUserInfo(onSuccess,onFailure));
            },

                userService.saveUserInfo = function(user,onSuccess){
                    return userResource.saveUserInfo(user,onSuccess);

                },
                userService.connectUser = function(user,onSuccess,onFailure){
                    return connectResource.connectUser(user,onSuccess,onFailure);
                },

                userService.uploadPhoto =function(image){
                    var promises = userPhotoResource.uploadPhoto(image);
                    return promises;
                },

                userService.getHospitals = function(){
                    alert('ser');
                    var promises = $http.get('dcResources/hospitals.json');
                    return promises;
                }

            return userService;
        }]);

    }).call(this);

0 个答案:

没有答案
相关问题