【问题标题】:How to pass the value to javascript in html.erb rails如何将值传递给 html.erb rails 中的 javascript
【发布时间】:2017-11-26 22:26:32
【问题描述】:

我正在尝试将值 user.skypeid 传递给 html.erb 中的 JavaScript 代码 participants。正确的方法是什么?以下方法对我不起作用。

  <% @users.each do |user| %>
<tr>
  <td><%= user.name %></td>
  <td><%= user.skypeid %></td>
  <td><%= link_to 'Show', user_path(user) %></td>
  <td>
    <div id="SkypeButton_Call_aaa_1">
     <script type="text/javascript">
     Skype.ui({
     "name": "call",
     "element": "SkypeButton_Call_aaa_1",
     "participants": [user.skypeid]
     });
     </script>
    </div>
  </td>
</tr>

【问题讨论】:

    标签: javascript ruby-on-rails-4


    【解决方案1】:

    您必须将其打印为嵌入的 ruby​​,并将其用引号括起来:

    <% @users.each do |user| %>
      <tr>
        <td><%= user.name %></td>
        <td><%= user.skypeid %></td>
        <td><%= link_to 'Show', user_path(user) %></td>
        <td>
          <div id="SkypeButton_Call_aaa_1">
          <script type="text/javascript">
            Skype.ui({
              "name": "call",
              "element": "SkypeButton_Call_aaa_1",
              "participants": ['<%= user.skypeid %>']
            });
           </script>
          </div>
        </td>
      </tr>
    <% end %>
    

    虽然您可以将脚本移到外部或另一个文件中:

    <% @users.each do |user| %>
      <tr class="">
        <td><%= user.name %></td>
        <td><%= user.skypeid %></td>
        <td><%= link_to 'Show', user_path(user) %></td>
        <td>
          <div id="SkypeButton_Call_aaa_1" data-skype="<%= user.skypeid %>"></div>
        </td>
      </tr>
    <% end %>
    
    <script type="text/javascript">
      let id = 'SkypeButton_Call_aaa_1'
      let user = document.getElementById(id).dataset
      Skype.ui({
        'name': 'call', 'element': id, 'participants': [user.skype]
      })
    </script>
    

    【讨论】:

    • 我对 Rails 很陌生。这就是我计划在获得工作版本后接下来要做的事情。很高兴您添加该信息。再次感谢!肯定会接受这个答案。
    • 我唯一的问题是,Skype 按钮没有出现在同一行。相反,这些按钮一个接一个地出现在页面的开头。我怎样才能让它们在同一行?谢谢
    • 太好了,我从未使用过那个 Skype.ui,但我认为必须有一个标识符来放置它们,你处理得好吗?,也许你在所有情况下都在使用相同,就是它们出现在同一个地方的方式。
    • 在您提到的第二种方法中,您不必将javascript代码包含在函数中并从
      中调用该函数吗?谢谢
    猜你喜欢
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    相关资源
    最近更新 更多