【问题标题】:render partials in ajax call in sails js在sails js中的ajax调用中渲染部分
【发布时间】:2015-01-08 11:05:22
【问题描述】:

我正在尝试使用 ajax 调用呈现部分内容。

$.ajax({
  url: url,
  //some code
  success: function(response){
    data = response.data;
    body = "<%- partial ('../partial/thread.ejs', {thread: thread}) %>";
    $('.modal-body').html(data);
    $('.modal').show();
  }
});

此代码的结果是弹出模态文本“”。它不会在页面中呈现相关的部分。 任何形式的帮助将不胜感激。

【问题讨论】:

  • 您是否尝试在客户端呈现服务器端标签? Havent 使用了sails.js,但它肯定会在服务器端呈现(即在页面加载之前)
  • 我只需要使用来自 ajax 调用的响应数据并在部分中使用它。有没有办法做到这一点?
  • 我的意思是 partial() 是服务器端代码/lib 的方法,而不是 jquery。根据 ejs 文档,您将使用类似这样的东西来呈现客户端 var something = new EJS({url: '../partial/thread.ejs'}).render(data)

标签: jquery ajax node.js sails.js


【解决方案1】:

在此之前,您可以使用 jquery 等库,也可以使用 $.ajax 方法或 .load() 方法

例如

function loadContent(url){
    $('#your_content').load(url)
}

// implementation in client side

loadContent('/your_route')

您无法直接访问 file_name_views.ejs ,但您必须创建路由并将此路由称为响应部分视图。

希望能帮到你

【讨论】:

    【解决方案2】:

    客户端js

    $.ajax({
      url: '/some_url',
      dataType: 'script'
    });
    

    //不要忘记使用dataType: 'script' 选项。非常重要。

    控制器

    return res.render('some_ejs_file.ejs', {layout: false});
    

    some_ejs_file.ejs

    $('SELECTOR').html(`<%- partial ('A_PARTIAL') %>`);
    console.log('Its good to see working :)')
    

    【讨论】:

      猜你喜欢
      • 2016-02-05
      • 2013-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多