1

我有一组颜色可供我的控制器和 javascript 文件访问

colors = ["#66c2a5", "#abdda4", "#abdda4", "#fee08b", "#fd8d3c", "#d53e4f"]      
red = ["#FFF", "#d53e4f"]  
special =  ["#d53e4f", "#d53e4f", "66c2a5", "#e0e0e0"]   

现在我在一个通用的 javascript 文件和一个通用的控制器中复制了两次。

有没有办法让它更整洁并只放在一个地方?

编辑:我有两种图表(d3.js),有些是固定的,永远不会改变,有些是来自控制器的动态图表。

这些颜色对两种图表都很常见。

将颜色放在通用控制器助手中并将它们传递给 JS 是否更好,或者我应该保持原样(js 和控制器中的颜色)

4

1 回答 1

0

如果您以两种不同的语言使用它,这并没有太大的重复。

如果由于某种原因它要大得多,我唯一想到的就是将它们放在控制器中,并对 ruby​​ 进行 AJAX 调用:

您可以将它们放在哈希中:

all_colors = 
     { colors: ["#66c2a5", "#abdda4", "#abdda4", "#fee08b", "#fd8d3c", "#d53e4f"],
       red: ["#FFF", "#d53e4f"], 
       special: ["#d53e4f", "#d53e4f", "66c2a5", "#e0e0e0"] 
     }   

然后您可以在控制器操作中将它们呈现为 json:

render json: all_colors

但是你还必须编写 javascript AJAX 部分,这会很复杂,而且你会向你的服务器发出更多的 HTTP 请求。

我不知道还有什么办法。

我建议你就这样离开它。

于 2013-08-21T20:21:58.043 回答