Rails-js中的Asset_path,变量为possible
Rails - Asset_path inside js with variable possible?
是否可以在asset_path中添加一个定义资产的变量?像
test.js.erb
img_container = function(value){
var img = "<%= asset_path('" + value + "' %>";
console.log(img);
}
这会打印
/ + value +
我知道现在已经很晚了,但我已经多次看到这篇文章,因为我一直遇到这个问题(并诅咒资产管道)。我终于找到了解决方案!
向html标记添加数据属性,并添加asset_path作为其值。然后你可以用jQuery.data()读取它,所以:
<%= image_tag("path/to/your/image.png",
id: "my_image_id",
data: {gif_url: asset_path("path/to/your/image.gif"}) %>
在您的javascript中:
var new_image_path = $("#my_image_id").data("gif-url");
如果你知道你要处理的值的范围,并且没有一百万个不同的选项,还有另一个选项可以解决这个问题。在javascript对象中声明所有图像文件,该对象将打印到页面源代码中,然后在函数中引用对象值。像这样:
// Array of values for country flag images
var country_flags= {};
country_flags["GB"]='<%= asset_path('GB.jpg') %>';
country_flags["ES"]='<%= asset_path('ES.jpg') %>';
然后:
document.getElementById('img').src = country_flags["GB"];
或者像这样,如果你想从其他变量中提取标志名:
document.getElementById('img').src = country_flags[country_code];
相关文章:
- 将函数的上下文应用于javascript变量
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 将PHP变量传递给jQuery时遇到问题
- 如何通过ajax刷新JSF填充的javascript变量
- 参数变量出现ngTable指令问题
- 通过javascript重定向html传递php变量
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 全局变量和全局对象的属性之间有什么区别吗
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 值对象在某个变量发生更改后发生更改
- Javascript变量赋值|
- AngularJS-在JSON选择器中使用变量名
- Javascript计数器变量未显示正确的值
- delete关键字在全局变量上的不同行为
- 如何在php变量中嵌入JQuery代码
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 在javascript函数中设置全局变量
- 将变量传递给外部Javascript
- Rails-js中的Asset_path,变量为possible