如何将current_user.id传递给AngularJs Controller

时间:2016-11-26 23:19:57

标签: javascript ruby-on-rails angularjs ruby angular-ngmodel

我从Ruby on Rails获取我的current_user.id并尝试通过HTML隐藏输入将其传递给我的角度控制器>

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

调试,我的范围未定义为“$ scope.user_id”,我需要此值将其发送到我的服务器。

我做错了吗?有没有更好的办法?

3 个答案:

答案 0 :(得分:1)

我建议您将{em> Devise Token Authng-token-auth一起使用。这为您提供了Angular的所有设计功能,并具有出色的集成功能。使用ng-token-auth,你可以做你想做的事情和更多

答案 1 :(得分:1)

尝试

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

答案 2 :(得分:0)

如果您不使用 ng-token-auth ,则可以使用ruby helper创建角度服务。

    # 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