新手问题 rails4 ajax 返回一个页面怎么弄?

gefangshuai · 2013年11月20日 · 最后由 gefangshuai 回复于 2013年11月20日 · 5418 次阅读

js 代码如下:

$('button').on('click',function(){
    $.ajax('/users', {
      dataType : 'html',
      success : function(data) {
        $('#myModal').html(data).modal('show');
      }
    });
  });

用的是 bootstrap 的 Modal 插件,动态接受一个只有 table 的页面,返回的 data 就是这个页面的 html 内容。然后调用$('#myModal').html(data) 将这个 data 动态填到 modal 中,然后弹出 modal。 请问具体怎么实现?

以前写 java 是直接返回这个页面就好了,但是现在返回的页面都包含在 application.html.erb 中,所以除了 table 以外,整个页面的布局也都包含到 data 中了,请问怎么才能不进 application.html.erb?

render :layout => false

#1 楼 @Rei 具体怎么用,大神

#1 楼 @Rei 噢,明白了。

#1 楼 @Rei 但是我这种方式实现起来是不是不太好,是不是可以动态<%= render :partial => 'list' %> 根据 ajax 的请求,动态重新加载一次 list 页面模版?就是类似局部刷新一个列表

#4 楼 @gefangshuai 你可以看看 UJS http://chloerei.com/2012/04/21/rails-3-2-ajax-guide/

用 UJS 的话,onclick 回调不用写了,逻辑代码改为写在 respone 的 view 里面。

<!-- index.js.erb -->
$('#myModal').html(<%= j(render :partial => 'list') %>).modal('show');

#5 楼 @Rei 请问大神,

j(render :partial => 'list')

这个“j”是什么语法?

#5 楼 @Rei 去掉这个“j”就不能弹出

#5 楼 @Rei 感觉 rails 太神奇,太诱惑了,但就是觉得好多很简单的东西没有没有头绪。经常无从下手。唉~

#8 楼 @gefangshuai jescape_javascript 的别名,它把 render 结果里的引号之类的字符转义一次,不然会引起 javascript 语法错误。

http://api.rubyonrails.org/classes/ActionView/Helpers/JavaScriptHelper.html#method-i-escape_javascript

#9 楼 @gefangshuai 这东西可不简单。

#11 楼 @Rei 路漫漫其修远兮,吾将上下而求索

需要 登录 后方可回复, 如果你还没有账号请 注册新账号