使用 Angular $resource 检索 Rails 条记录

Retrieve Rails Records Using Angular $resource

我正在尝试使用 angular 的 $resource 检索 rails 记录的集合,但是当我尝试在视图中呈现这些记录时,我总是得到一个空数组。

posts_controller.rb

def index
  @posts = current_user.author.posts.limit(25)
end

app.js.coffee

app = angular.module('app', ['ngResource'])

app.factory 'Posts', ($resource) ->
  $resource '/posts/:id', {}, query:
    method: 'GET'
    isArray: true
    responseType: 'json'

app.controller 'PostsCtrl', ($scope, Posts) ->
  $scope.posts = Posts.query()

在控制台中,我看到 $resolved 是假的,所以我不确定这个问题是与访问 json 数据本身有关,还是与 $promise

有关

要了解异步编程需要一些时间,因为 Ruby 是一种缺少异步的语言。

您需要将回调传递给 query() 方法。所以你的例子应该看起来像(在 JS 中):

Posts.query(function(posts) {
    $scope.posts = posts;
})

旁注: 最佳做法是 post 您的示例 Angular 代码 JavaScript - 除非问题特定于 CoffeeScript。