1
我剛剛開始學習Angular,並觀看了Ryan Bates的'Railscast,以及閱讀BerylliumWork的tutorial,但我仍在努力弄清楚如何從Rails服務器訪問數據。在Angular和Rails中訪問數據對象
我在這裏有一個非常簡單的用例。我想在視圖中訪問用戶的first_name。
這裏是視圖代碼:
<div ng-controller="UserCtrl">
{{user.first_name}}
</div>
這裏是CoffeeScript的文件:
app = angular.module("app", ["ngResource"])
app.factory "User", ["$resource", ($resource) ->
$resource("https://stackoverflow.com/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 user」... {user.first_name}之類的東西,我會得到完整的用戶列表。
我該如何獲得一個用戶實例?使用實例變量,而不是我的硬編碼「1」?
儘管如何讓「1」變量?上面的代碼已經拉用戶1。但是如果我想要用戶n呢? – jflores 2013-03-12 16:09:10
'User.query()'獲取所有用戶的列表(假設你沒有提供任何過濾器,例如'User.query({active:true})'')。該列表是一個對象數組。每個對象都是一個特定的對象,由服務器的響應如何定義。這要取決於您決定如何瀏覽此列表以便獲取(並可能編輯)每個用戶。您也可以使用單獨的路徑來獲取/顯示/編輯單個用戶。您可以通過在$ routeProvider中定義的自定義路由(例如'when('/ users /:id',{controller:'UserCtrl',templateUrl:'path_to_tpl'})')來完成此操作。 – Stewie 2013-03-12 17:06:56
這就是我需要做的 - 設置$ routeProvider。非常感謝@Stewie!確實,勝利是你的。 – jflores 2013-03-12 23:19:02