代码之家  ›  专栏  ›  技术社区  ›  lapinkoira

将数据从Phoenix发送到Slim模板中的Javascript

  •  1
  • lapinkoira  · 技术社区  · 6 年前

    我找到了一种方法,在HTML属性中定义一个变量,如下所示:

    div data-name=some_var id="component"
    

    然后,我可以从Javascript中检索它:

    alert($("#component").data("name"));
    

    然而,它在我看来很难看。有没有其他方法来实现这一点?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Sheharyar    6 年前

    这可能会让您感觉不好,但这是从后端向前端发送数据的最有效方式。 In fact, it's pretty common.

    其他发送数据的方式总是涉及发出单独的web请求,这在大多数情况下通常是不需要的。


    由于您使用的是jQuery,它还抽象了实现,因此您可以在 data- 属性并可以使用它,而无需在客户端对其进行解析。

    div id='item' data-obj='{"foo":"bar"}'
    

    在您的JS中:

    $('#item').data('obj') // {foo: bar}
    

    相关资源:

        2
  •  1
  •   Klesun Gian Marco    4 年前

    我通常这样做:

    div id="component"
    javascript:
      var templateData = {
        name: '<%= @name %>',
        product_str: '<%= Poison.encode!(@product) %>',
      };
    

    您可能需要安装 Poison 将数据编码为JSON。