2016-08-04 3 views
0

서비스 요청을 관리하기 위해 $ resource를 사용 했으므로 오래되었습니다.

어떤 이유로 든 내 모든 전화가 정상적으로 작동하고 내 REST 엔드 포인트, 기본적으로/api/profile 및/api/profile/: id에 도달합니다. (404)

사람으로

그러나 어떤 이유로

, 내 넣어 반환에 갈 수 있습니다 어떤 아이디어를 가지고있다.

감사와 환호

'use strict'; 

angular.module('chainLinkApp') 

.config(['$stateProvider', function($stateProvider){ 
    $stateProvider 
    .state('profile', { 
    url:'/profile/:id', 
    templateUrl:'views/profile.html', 
    controller:'ProfileController', 
    controllerAs:'profile' 
    }); 
}]) 

.controller('ProfileController',['$scope', '$http', 'profileFactory', function($scope, $http, profileFactory){ 


    $scope.updateMode = false; 


    $scope.comments = profileFactory.getProfiles.go().$promise.then(function(response){ 
    $scope.comments = response; 
    }); 


    $scope.getProfile = function(commentId){ 
    $scope.comment = profileFactory.getProfile.go({id:commentId}).$promise.then(function(response){ 
     $scope.comment = response; 
     $scope.updateMode = true; 
    }, function(error){ 
     return console.log('An error has occured', error); 
    }); 
    }; 


    $scope.addProfile = function(comment){ 
    profileFactory.postProfile.go(comment).$promise.then(function(){ 
     console.log('Your post was a success'); 
     $scope.comment = {}; 
    }, function(error){ 
     console.log('There was an error: ', error); 
    }); 
    }; 


    $scope.updateProfile = function(comment){ 
    profileFactory.updateProfile.go(comment._id, comment).$promise.then(function(response){ 
     console.log('Your profile has been updated'); 
     $scope.updateMode = false; 
     $scope.comment = {}; 
    }, function(error){ 
     console.log('There is an error: ', error); 
    }); 
    }; 
}]) 


.factory('profileFactory', ['$resource', function($resource){ 

    return{ 
    getProfiles: $resource('/api/profile', {}, { go: { method:'GET', isArray: true }}), 
    getProfile:  $resource('/api/profile/:id',{},{ go: { method: 'GET', params: { id: '@id' }}}), 
    postProfile: $resource('/api/profile', {}, { go: { method: 'POST' }}), 
    updateProfile: $resource('/api/profile/:id', {}, { go: { method: 'PUT', params: { id:'@id' }}}) 
    }; 

}]); 
+0

문제는 아마 당신의 서버 측에있다 :

.factory('UserService', function($resource) { return $resource('/api/users/:id', {}, { 'create': { method: 'POST' }, 'update': { method: 'PUT', params: { id: '@id'} } }); }) 

그리고이 같은 서비스를 호출 거기에 매핑을 확인하십시오. – Walfrat

+0

요청에 {_method : 'PUT'}을 (를) 추가해보십시오. 일부 서버는 실제 PUT을 사용할 수 없습니다. – KoIIIeY

답변

0

당신의 방법은 $resource가 이상하다 사용하고,이 같아야합니다 UserService.create(theUserobj, function(result) { ... })

+0

감사합니다 Mavlarn. 당신 말이 맞아요. 내가 그것을 사용하고 몇 가지 사용자 정의 호출을 포함하여 다양한 호출 체인에 노력했기 때문에 잠시 동안. – cnak2

+0

그래, 어쨌든, 당신의 코드에 문제가없는 것 같습니다. 업데이트 요청에서 URL을 확인 했습니까? 어떤 서버 측 코드와 일치해야합니다. url에서 'id'를 확인하십시오. – Mavlarn

+0

그래. 모든 작품! – cnak2