例如,要使用以下内容:
#index.haml
%article-content{ :remote => true, :id => "article-#{article.id}", :class => "article-content", "data-article-id" => article.id }
#show.js.erb
var article = "#article-<%= params[:article_id] %>";
$('article').html('<%= j render ("article") %>').show();
到目前为止,这似乎不起作用。
编辑:
感谢@MrYoshiji,我似乎更接近实现这个目标。但是,我仍然可以在浏览器中看到一些原始JS,并且图像不会从视图中加载。并且,即使下面的jquery选择器中没有元素,也会出现文章 do ,所以我有点困惑,并试图找出它。
#articles/show.js.erb
$().html('<%= j render ("article") %>');
#articles_controller.rb
def show
respond_to do |format|
format.js { }
end
end
答案 0 :(得分:1)
有一天我看到了非常好的解决方案,但我找不到它。我将尝试向您展示此解决方案的基础知识:
# articles/index.haml
.ajax_load.article-content{ data: { 'remote-url' => article_path(article) } }
= 'This content will be available soon'
# layouts/application.haml
:javascript
$(document).ready(function() {
$('.ajax_load').each(function(index, element) {
var url_to_go = $(element).data('remote-url')
if (url_to_go) {
$.get(url_to_go, function(responseText) {
$(element).html(responseText);
})
} else {
console.log('missing url for ajax-load!')
}
})
})
此javascript将检测具有类.ajax_load
的每个HTML元素,循环遍历每个元素,并对其“data-remote-url”属性(如果存在)进行AJAX调用,并将AJAX调用的结果加载到HTML元素本身。使用此解决方案,您可以使用组合HTML类ajax_load
+ data-remote-url
在页面中加载AJAX中的任何内容。
答案 1 :(得分:-1)
不,不是。 :remote
与form_for
,link_to
和button_to
等帮助程序一起使用。查看Guide。你不能坚持:remote
任何旧地方并期望它做某事。