0

我正在使用带有 angularjs 的 rails 3.2,并且我正在尝试了解如何使用 angular 的 $resource。

我希望资源从非默认操作返回结果(因此不获取、保存、查询、删除和删除)

所以在我的帖子控制器中我有

def home
  @recent_posts = Post.recent_posts
  respond_to do |format|
    format.html
    format.json
  end
end

然后在我的 js 文件中

app.factory "Post", ["$resource", ($resource) ->
  $resource("/post/:id/:action", {id: "@id"}, {home: {method: "GET", isArray: true}})
]

@HomeCtrl = ["$scope", "Post", ($scope, Post) ->
  $scope.recent_posts = Post.home()
]

在我看来,如果我尝试做类似ng-repeat="post in recent_posts"的事情,它不会返回任何东西。

4

2 回答 2

1

您忘记指定action参数:

app.factory "Post", ["$resource", ($resource) ->
  $resource "/post/:id/:action",
    id: "@id"
  ,
    home:
      method: "GET"
      params:
        action: "home"

      isArray: true

]
于 2013-03-21T07:21:38.680 回答
0

感谢您的建议,他们帮助我找到了最终有效的方法。我只是像这样更改了家庭控制器:

@HomeCtrl = ["$scope", "Post", ($scope, Post) ->
  $scope.recent_posts = Post.home({action:'home'});
]
于 2013-03-21T23:24:11.960 回答