首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >呈现JS.ERB的结果是原始代码

呈现JS.ERB的结果是原始代码
EN

Stack Overflow用户
提问于 2016-03-23 12:24:43
回答 2查看 981关注 0票数 1

当执行AJAX请求时,show.js.erb呈现部分_article.haml

我想在show.js.erb中做的是写:

代码语言:javascript
复制
<%= j render  'article' %>

由于它有一个.js扩展,所以我需要用JavaScript包装它(上面的示例没有呈现部分),因此:

代码语言:javascript
复制
'<%= j render  'article' %>' OR ('<%= j render  'article' %>');

这将呈现部分,但使用原始代码--包括HTML和JS转义。

代码语言:javascript
复制
('things will go back to \"normal.\"<\/p>\n\n');

怎么做才是对的?

welcome#index

代码语言:javascript
复制
.ajax_load.article-content{ data: { 'remote-url' => article_path(@article) } }

articles.js

代码语言:javascript
复制
 $(document).ready(function() {
  $('.ajax_load').each(function(index, element) {
    var url = $(element).data('remote-url')
    if (url) {
      $.get(url, function(responseText) {
        $(element).html(responseText);
      })
    } else {
      console.log("missing url for ajax!")
    }
  })
})
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-23 19:07:56

这个答案是属于吉吉先生的。

Ajax:

代码语言:javascript
复制
  $(document).ready(function() {
      $('.ajax_load').each(function(index, element) {
        var url = $(element).data('remote-url')
        if (url) {
          $.get(url, function(responseText) {
            $(element).html(responseText);
          }, 'html' )
        } else {
          console.log("missing url for ajax!")
        }
      })
  })

articles_conroller直接呈现_article部分:

代码语言:javascript
复制
def show
    #respond to JS
    respond_to do |format|
        format.js { render :partial => "article" } 
    end
end

welcome#index

代码语言:javascript
复制
 .ajax_load.article-content{ data: { 'remote-url' => article_path(@article) } }
票数 1
EN

Stack Overflow用户

发布于 2016-03-23 12:42:59

你必须决定你想让部分渲染到哪里。在大多数情况下,您可以使用jQuery抓取页面上的容器,并在其中插入以下部分:

代码语言:javascript
复制
$('#article-container').html('<%= j render  'article' %>');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36178135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档