2015-04-09 6 views
1

У меня есть список пользователей с кнопкой удаления на /users url. Мой Удалить маршрут выглядит следующим образом:Пользователь MEAN stack delete

app.route('/users/:userId') 
    .get(users.read) 
    .put(users.updateById) 
    .delete(users.delete); 
app.param('userId', users.userById); 

Но проблема в том, что моя удаления кнопка вызова удалять на /users URL, так что я получаю DELETE http://localhost:3000/users 404 (Not Found). Как я могу решить эту проблему? Моя функция remove() контроллера вы можете увидеть ниже. Как я могу пройти '/user/' + user._id? Пользователь правильно удален только из сферы :(

$scope.remove = function(id) { 
    var user = $scope.users[id]; 
    var modalOptions = { 
     closeButtonText: 'Cancel', 
     actionButtonText: 'Delete user', 
     headerText: 'Delete ' + user.displayName + '?', 
     bodyText: 'Are you sure you want to delete this user?' 
    }; 

    modalService.showModal({}, modalOptions).then(function() { 
     if (user) { 
      user.$remove(); 

      for (var i in $scope.users) { 
       if ($scope.users[i] === user) { 
        $scope.users.splice(i, 1); // remove item from scope 
       } 
      } 
     } 
    }); 

}; 

абонентское является основными из установки mean.js

angular.module('users').factory('Users', ['$resource', 
    function($resource) { 
     return $resource('users', {}, { 
      update: { 
       method: 'PUT' 
      } 
     }); 
    } 
]); 
+0

Похоже на пользователя. $ Remove метод не настроен должным образом. Как вы это определяете? –

+0

Какие настройки вы считаете? 'export.delete' в моем контроллере сервера? – user3216673

+0

Например, если для выполнения запроса ajax используется угловой ресурс, ресурс не настроен для правильного передачи идентификатора пользователя в URL-адресе, а не в json. Ваша проблема с угловым на данный момент, если вы не хотите менять маршруты вашего сервера. Какой генератор (если есть) вы использовали для создания своего проекта? –

ответ

0

угловых ресурсов по умолчанию имеет следующие методы: получить, сохранить, запрос, удалить, удалить ., если не указано иное, то они не будут передавать из параметров в URL, как вам нужно их. в этом случае вам необходимо указать метод remove и убедитесь, что парам получает передается в URL.

angular.module('users').factory('Users', ['$resource', 
    function($resource) { 
     return $resource('users', {}, { 
      update: { 
       method: 'PUT' 
      }, 
      remove: { 
       method: 'DELETE', 
       url: 'users/:id', 
       params: {id: '@_id'} 
      } 
     }); 
    } 
]); 

это предполагает, что ваши объекты-пользователи имеют свойство _id, которое является общим в среднем стеке. Вероятно, вам следует настроить получение и обновление таким же образом.

+0

Спасибо! :-) Это очень полезно – user3216673