我有一个元素的 background-image 属性变量,我需要通过 Rails 应用程序中的某些后端逻辑每 60 秒修改一次。
如何从助手获取变量或方法值并将其放入 View 的 css 中?
目前,我有一个助手可以从另一个来源中挑选出一个更新的 URL。我需要每分钟触发此帮助程序调用,以便为被以下 css 屏蔽的源图像获取更新的 URL:
.bg {
background-image: url(http://mydomain.tld/someimage.jpg);
background-repeat: no-repeat;
background-size: 203%;
background-position: top left;
width: 256px;
height: 256px;
}
background-image url
是需要立即刷新的内容。
最佳答案
据我所知,您不能真正直接从您的 View 代码访问 CSS - 但是您当然可以使用 Javascript 应用 CSS 样式(JQuery 使它变得简单并且默认情况下与 rails 一起提供),并且您可以使用一个实例来自该 Javascript 中的 Controller 的变量。
或者,您可以在 View 中使用内联 CSS - 但这似乎比 JS 解决方案更糟糕。
编辑:
这就是我要说的要点 - 这没有经过测试,但应该可以让您入门。
$(document).ready(function() {
var refreshImage = function(){
$.ajax({
url: 'your helper url here',
success: function( data ) {
$(".bg").css("background-image" "url(" + data.url + ")");
setTimeout(refreshImage(), 60000);
}
});
}
refreshImage();
});
基本上,您可以设置一个调用 document ready 的调用,它将从您定义的某些操作中获取图像 url,然后将其设置在您的页面上,并“安排”自身在 60 秒后再次触发。
关于javascript - 如何将 Rails 变量传递到必须动态刷新(每 60 秒)的 View 的 CSS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8933442/