【问题标题】:passing javascript variable to ruby function call in javascript HAML将javascript变量传递给javascript HAML中的ruby函数调用
【发布时间】:2013-07-19 14:21:45
【问题描述】:

我正在使用 Sinatra、Ruby、HAML 和 JavaScript

所以我想出了如何在 HAML JavaScript 中调用 ruby​​ 函数

@@layout
%html
    %head
        %title #{@title}
          :javascript
              var retval
              function diff_by_company_id() {
                 retval = "#{ruby_function()}";
              }

但是我现在需要向 ruby​​ 函数传递一个 javascript 变量,但我不知道该怎么做。 这是我试过的,显然行不通。

def test(input)
    return "Output Number: "+input.to_s + "!"
end

@@layout
%html
    %head
        %title #{@title}
          :javascript
              var retval
              function diff_by_company_id() {
                 var input = 1;
                 retval = "#{ruby_function("input")}";
              }

它不是传递输入值 1,而是传递字符串输入。

所以我得到的是:retval = Output Number: input!

我想要的是:retval = Output Number: 1!

任何有关如何正确传递的帮助将不胜感激。

【问题讨论】:

    标签: javascript ruby sinatra haml


    【解决方案1】:

    Ruby 在服务器端执行,javascript 在客户端执行。这现在起作用的原因是 ruby​​ 代码是在页面加载时执行的。

    如果不向服务器发出 AJAX 请求,就无法“将 javascript 变量传递给 ruby​​”。

    【讨论】:

    • 有人可以提供一个代码示例,因为我有大约 20 分钟的 ajax 经验。
    • @Richard 你最好告诉我们你为什么要做你正在做的事情。什么是目标而不是实现。
    • 我正在尝试通过 ruby​​ 函数发送用户输入并显示结果。
    猜你喜欢
    • 2016-08-21
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 2013-07-05
    • 2021-02-19
    • 2017-04-30
    • 2018-12-14
    相关资源
    最近更新 更多