Я новичок в 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
app.factory "User", ["$resource", ($resource) ->
$resource("/users/:id.json", {id: "@id"}, {query: {method: "PUT"}})
]
Вы ошиблись "запрос" на "обновление"?
Если вы получаете массив, вы должны установить isArray = true, иначе установите его false, так же, как парень сказал выше меня.
Добавьте isArray: false в объявление ресурса, например:
'query': {method: 'GET', isArray: false }