【问题标题】:How can I pass my current_user.id to AngularJs Controller如何将 current_user.id 传递给 AngularJs 控制器
【发布时间】:2016-11-26 23:19:56
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    试试

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

    【讨论】:

    • 有点像上面的答案,但调用了一个函数>> ng-init="init()"。谢谢
    【解决方案2】:

    我建议您使用 Devise Token Authng-token-auth。这为您提供了与 Angular 完美集成的所有设计功能。使用 ng-token-auth,你可以做任何你想做的事,甚至更多

    【讨论】:

      【解决方案3】:

      如果您不使用 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-22
        • 1970-01-01
        • 2015-09-13
        • 2019-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多