簡體   English   中英

從AngularJS訪問Devise用戶?

[英]Access Devise user from AngularJS?

我有一個在前端使用AngularJS的Rails應用程序。 我還具有“ / api /:user_id / submissions /:id”格式的路由,可以訪問用戶的特定提交內容。 在前端,我想顯示當前登錄的Devise用戶的每條帖子,以及它們的帖子。 我創建了兩個Angular工廠:

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是什么。 我有一個commits.rb控制器,它的操作可以成功地從我的路線“ / api /:user_id / submissions /”中提取特定用戶的所有帖子,但就像我說的那樣,我不知道如何告訴Angular current_user.id是因為只能從Rails訪問current_user。

我已經嘗試解決這個問題已有一個星期了,並且在Google搜索中找不到太多幫助。 任何意見是極大的贊賞。

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

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

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM