Ошибка в конфигурации ресурса при использовании функции $ resource.query () с AngularJS / Rails

0

Я новичок в angular, и я пытаюсь добавить его в один из моих проектов Rails. Я использую жемчужину angular -rails. Я хочу указать пользователей, использующих $resource.query(), и я получаю следующую ошибку:

Ошибка: [$ resource: badcfg] Ошибка в настройке ресурсов. Ожидаемый ответ содержать массив, но получил объект

Когда я проверяю localhost: 3000/users.json, он показывает массив пользовательских объектов, поэтому ответ должен быть в правильном формате. Вот что у меня есть:

В приложении /assets/javascript/users.js.coffee:

app = angular.module("Volunteers", ["ngResource"])

app.factory "User", ["$resource", ($resource) ->
  $resource("/users/:id", {id: "@id"}, {update: {method: "PUT"}})
]

@UserCtrl = ["$scope", "User", ($scope, User) ->
  $scope.users = User.query()
]

В приложении /views/users/index.html:

<div ng-controller="UserCtrl">
  <ul>
    <li ng-repeat="user in users">
      {{user.name}}
    </li>
  </ul>
</div>

И в user_controller:

class UsersController < ApplicationController
    respond_to :json, :html 

    def index
        respond_with User.all
    end
  • 0
    Ну, посмотрев немного дольше, я обнаружил, что добавление .json в параметр url ресурса решает проблему: $ resource ("/ users /: id.json", {id: "@id"}, {update: {method: "СТАВИТЬ"}})
Теги:
ruby-on-rails-4

2 ответа

0
Лучший ответ
app.factory "User", ["$resource", ($resource) ->
$resource("/users/:id.json", {id: "@id"}, {query: {method: "PUT"}})
]

Вы ошиблись "запрос" на "обновление"?

Если вы получаете массив, вы должны установить isArray = true, иначе установите его false, так же, как парень сказал выше меня.

3

Добавьте isArray: false в объявление ресурса, например:

'query': {method: 'GET', isArray: false }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню