我总是在我的代码中写这样的东西:
function setSomeImage(image_name) {
$("#some_div").html("<%= image_tag ('image.png') %>");
}
我根据我传递的变量设置图像,我必须使用image_tag
帮助程序在rails中正确编写它。但是,Javascript和image_tag
并没有很好地协同工作。
我想要做的是,我想用javascript动态操作image_tag
文件名。
我现在可以这样写:
function setSomeImage(image_name) {
$("#some_div").html('<img src="/assets/'+image_name+'.png">');
}
但那不干净。 我想使用image_tag帮助器,像这样:
function setSomeImage(image_name) {
$("#some_div").html('<%= image_tag ('+image_name+') %>');
}
但那不起作用。 知道如何将两者结合起来吗?这样做有什么最好的做法吗?
另一个想法是将image_path
作为变量直接传递给函数,但这并不总是可行。
答案 0 :(得分:3)
如果您的js文件的扩展名为js.erb
,那么您将能够使用asset_path helper to display some asset
,但 您将无法将js变量传递给它,因为首先将评估ruby部分,在此期间,image_name将不会出现js变量。
答案 1 :(得分:0)
image_tag
由服务器上的rails应用程序呈现,因此无法在JavaScript中使用它。你认为不干净的第二个代码块可能就像你试图用JavaScript做的那样好。