如何将我的 current_user.id 传递给 AngularJs 控制器

How can I pass my current_user.id to AngularJs Controller

我正在 Rails 从 Ruby 获取我的 current_user.id 并试图通过 HTML 隐藏输入将它传递到我的 angular 控制器>

<input type="hidden" ng-model="user_id" value="<%= current_user.id%>"></input>

正在调试,我的范围未定义为“$scope.user_id”,我需要这个值才能将它发送到我的服务器。

我是不是做错了什么?有没有更好的办法?

我推荐你使用Devise Token Auth with ng-token-auth。这使您可以将所有设计功能整合到 Angular 中。使用 ng-token-auth 你可以做你想做的,甚至更多

尝试

<input type="hidden" 
       ng-model="user_id" 
       ng-init="user_id = <%= current_user.id%>"></input>

如果您不使用 ng-token-auth,您可以使用 ruby 助手创建 angular 服务。

    # layout/application.html.slim
    = js_current_user

    # application_helper.rb
    def js_current_user
      <<-EOS.html_safe
        <script type="text/javascript">
          angular.module('myApp').constant('CURRENT_USER', #{current_user.to_json})
        </script>
      EOS
    end