2014-01-28 2 views
0

У меня есть следующие основные API для форума:ngResource: Создание запроса POST к определенному пункту

  • POST /topics (создать новую тему)
  • GET /topics (получить все темы)
  • GET /topics/1 (получить тема с ID "1")

И я хочу добавить следующее:

  • POST /topics/1 (добавить ответ на тему с ID "1")

Я попытался следующий код (соответствующие выдержки), но он не работал:

.controller('TopicReplyController', function ($scope, $routeParams, Topics) { 
    'use strict'; 

    var topicId = Number($routeParams.topicId); 

    Topics.get({topicId: topicId}, function (res) { 
     $scope.topic = res; 
    }); 

    $scope.postReply = function() { 
     var newPost = new Topics({ 
      topicId: topicId 
     }); 

     newPost.text = $scope.postText; 
     newPost.$save(); // Should post to /topics/whatever, not just /topics 
    }; 
}) 
.factory('Topics', function ($resource) { 
    'use strict'; 

    return $resource('/topics/:topicId', {topicId: '@id'}); 
}); 

Это просто делает запрос /topics, который не работает.

Любые идеи, как я могу заставить это работать?

+0

Вы хотите обновить/Темы/1 или создать новую тему с ID 1? – Adrian

+0

Я хочу добавить новое сообщение в тему с ID 1, которое требует отправки запроса POST в/themes/1. Это необычно, но это все еще RESTful. – callumacrae

ответ

1

$resource docs С:

Если значение параметра с префиксом @, то значение этого параметра извлекается из объекта данных (полезно для не-GET операции) .`

Вы указываете, что topicId будет id объекта, который вы используете.

$resource('/topics/:topicId', {topicId: '@id'}); 
          // ^^^^^^^^^^^^^^ 
          // Here is where you are mapping it 

Вы хотите передать id: topicId так, что он будет отображать id к topicId в URL.

var newPost = new Topics({ 
    id: topicId 
}); 
+0

Спасибо. Это не то, как я закончил это в конце - вместо этого я указал его в объекте как аргумент в '. $ Save()', но я проверю, будет ли ваша работа позже и пометьте ее как решение if он работает также. – callumacrae

Смежные вопросы