2013-07-02 79 views
0

我有一個在前端使用AngularJS的Rails應用程序。我還有一個格式爲「/ api /:user_id/submission /:id」的路徑來訪問用戶的特定提交。在前端,我希望顯示當前登錄的Devise用戶的每篇文章,並僅顯示他們的帖子。我創建了兩個工廠角:從AngularJS訪問Devise用戶?

var brainDB = angular.module('brainDB',['ngResource']).factory('userSubmission', function($resource){ 
var service = $resource('/api/:user_id/submissions/:id', {user_id: '@user'}, {id: '@id'}); 

return service; 

並已將其作用域爲我的控制器:

brainDB.controller('SubmissionsCtrl',['$scope', 'Submission', 'userSubmission', 
function($scope, Submission, userSubmission){ 

$scope.submissions = Submission.query(); 
$scope.userSubmissions = userSubmission.query(); 



}]); 

唯一的問題是,工廠在頂部不起作用。我可以輸出數據庫中的每一個提交,但我不知道如何告訴Angular current_user的user_id是什麼。我有一個submissions.rb控制器的動作,它成功地從我的路線「/ api /:user_id/submission /」中爲特定用戶拉出所有帖子,但就像我說過的,我不知道如何告訴Angular什麼current_user.id是因爲current_user只能從Rails訪問。

我一直試圖解決這個問題一個星期了,並沒有找到通過谷歌搜索很多幫助。任何意見是極大的讚賞。

回答

0

我自己的應用程序有另一個服務器端點調用defaults &角度服務Metadata在角度.run()塊中被初始化。該塊將一個currentUser對象拉回(用其他元數據)以初始化$rootScope變量。從那裏,我可以在我的角度控制器中調用其他角度服務:userSubmission.query({user_id: $rootScope.currentUser.id});等。

另一種選擇是,以產生一個JavaScript文件的元數據內容與您的所有元數據(即metadata.js.erb中,你讓軌道填充是提供給你的整個角度的應用程序變量(使用<%= =>)。

希望幫助

+0

感謝您的信息!我會研究這一點。 –