gpt4 book ai didi

javascript - [RAILS][Javascript] 在 javascript 中使用 Controller 变量是 "clean"吗?

转载 作者:行者123 更新时间:2023-12-03 06:46:07 25 4
gpt4 key购买 nike

我对 Rails 中的惯例和最佳处理方式有一个小问题。

现在对于 View ,我需要获取一个哈希数组,我可以在 Controller 中更轻松地构造它。我的 javascript 代码需要这个 arry...

到目前为止,我找到了一个不是 ajax 请求的解决方案,就是这个:

var toto = #{@controller_var.to_json}

我知道执行 ajax 请求或将此变量存储在 erb 代码中可能“更好”...但我尝试限制自己执行 ajax 请求(因为此页面已经执行了一些请求)并且我不喜欢创建隐藏字段来存储我的 Controller 方法...

无论如何,如果您能就此提出意见/建议,我将非常感激! :)

最诚挚的问候!

最佳答案

这种方法的主要问题是您的 javascript 现在与 Rails 紧密耦合,并且在没有运行完整的 Rails 服务器的情况下无法对其进行单独测试。

出于这个原因,我完全避免使用服务器生成的 JavaScript。

即使您没有完全构建 API 驱动的客户端应用程序,您至少可以将 JSON 注入(inject) dom 元素:

<script id="toto" type="application/json">
<%= @controller_var.to_json %>
</script>

现在,在您的测试用例中,您可以使用静态 HTML 页面,其中脚本可以包含模拟数据。

另一个问题是您无法通过 CDN 提供服务器生成的 javascript。如果您的 js 响应非常小,这不是问题,但现在要与页面上现有的 javascript 交互,您很可能会诉诸全局变量。

除了导致代码可维护性较差的全局变量的明显问题之外,缩小器和优化器执行死代码消除的程度也受到显着影响。

关于javascript - [RAILS][Javascript] 在 javascript 中使用 Controller 变量是 "clean"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37727215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com