1

我刚开始学习 Angular 并观看了 Ryan Bates 的Railscast以及 BerylliumWork 的教程,但我仍在努力弄清楚如何从我的 Rails 服务器访问数据。

我在这里有一个非常简单的用例。我想在视图中访问用户的名字。

这是查看代码:

 <div ng-controller="UserCtrl">
  {{user.first_name}}
 </div>

这是咖啡脚本文件:

app = angular.module("app", ["ngResource"])
app.factory "User", ["$resource", ($resource) ->
  $resource("/users/:id", {id: "@id"}, {
    show: {method: "GET"}
    })
]

@UserCtrl = ["$scope", "User", ($scope, User) ->
  $scope.users = User.query()
  $scope.user = User.show(id: **1**)
]

这是我的控制器:

def show
  respond_with User.find(params[:id])
end

如您所见,我在 $scope.user 中有一个硬编码的 id,它显示在页面上。同样,如果我使用 ng-app="user in users"...{user.first_name} 之类的东西,我会得到完整的用户列表。

我如何获得一个用户实例?使用实例变量,而不是我的硬编码“1”?

4

1 回答 1

1

默认情况下:

  • $resource.query() 用于获取对象列表。
  • $resource.get({params}) 用于获取单个对象

在您的情况下,您需要$scope.user = User.get({id: 1}).

于 2013-03-12T16:05:17.350 回答