Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从AngularJS访问设计用户?_Javascript_Ruby On Rails_Ruby_Angularjs_Devise - Fatal编程技术网

Javascript 从AngularJS访问设计用户?

Javascript 从AngularJS访问设计用户?,javascript,ruby-on-rails,ruby,angularjs,devise,Javascript,Ruby On Rails,Ruby,Angularjs,Devise,我有一个Rails应用程序,它在前端使用AngularJS。我还有一个“/api/:user_id/submissions/:id”格式的路由,用于访问用户提交的特定内容。在前端,我想显示Desive用户当前登录的每个帖子,并且只显示他们的帖子。我创建了两个角度工厂: var brainDB = angular.module('brainDB',['ngResource']).factory('userSubmission', function($resource){ var service =

我有一个Rails应用程序,它在前端使用AngularJS。我还有一个“/api/:user_id/submissions/:id”格式的路由,用于访问用户提交的特定内容。在前端,我想显示Desive用户当前登录的每个帖子,并且只显示他们的帖子。我创建了两个角度工厂:

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当前用户的用户id是什么。我有一个submissions.rb控制器,它可以成功地从我的路径中提取特定用户的所有帖子,“/api/:user_id/submissions/”,但正如我所说的,我不知道如何告诉Angular当前的_user.id是什么,因为当前的_用户只能从Rails访问


我已经尝试解决这个问题一个星期了,但通过谷歌搜索并没有找到太多帮助。非常感谢您的建议。

我自己的应用程序还有另一个服务器端点调用
默认值
&angular service
元数据
,它在angular
.run()块中初始化。此块将
currentUser
对象拉回来(与其他元数据一起)以初始化
$rootScope
变量。从那里,我可以调用其他angular服务:
userSubmission.query({user\u id:$rootScope.currentUser.id})

另一种选择是在javascript文件中生成元数据内容,其中包含所有元数据(即
metadata.js.erb
),您可以让rails填充整个angular应用程序可用的变量(使用


希望这能有所帮助。

谢谢你提供的信息!我会调查的。