一梦之殇 2019-12-25 12:12 采纳率: 0%
浏览 498

node.js art-template能不能一个模板,多次渲染

//获取栏目列表
mysql.getLm(function (lmParams) {
lmData = lmParams;
//使用模板替换
// module.exports.lm = template('./index.html', {lm: lmParams});
})

//获取要闻
mysql.getYw(function (ywzParams) {
ywzData = ywzParams;
//module.exports.ywz = template('./index.html', { ywz: ywzParams });
})

var value = [
    {'lm': lmData },
    {'ywz': ywzData}
]
var htmls = template('./index.html', {
    indexData: value
})
module.exports.index = htmls;

<ul>

                        {{each indexData as value}}
                        <li> <a href="http://127.0.0.1:8000{{$value.lm.colName}}">{{$value.lm.colName}}</a></li>
                        {{/each}}


                    </ul>
{{each indexData as value}}
                            {{if $value.ywz.type == '0'}}
                            <dt><a href="http://127.0.0.1/{{$value.ywz.fnUrl}}/{{$value.ywz.artId}}" class="Bold" target="_blank">{{$value.ywz.fnName}}
                            </a></dt>
                            {{else}}         
                            <dd><a href="http://127.0.0.1/{{$value.ywz.fnUrl}}/{{$value.ywz.artId}}" target="_blank">{{$value.ywz.fnName}}</a></dd>
                            {{/if}}
* 1. 1.                             {{/each}}

每次渲染只能渲染一个 还得单独去查询, 我想多次查询 然后一次渲染,才学node,希望各位大佬帮帮忙

  • 写回答

1条回答 默认 最新

  • lshen01 2023-03-17 10:02
    关注

    参考GPT和自己的思路:

    可以通过将多个数据合并到一个对象中,再将这个对象作为模板渲染时的数据源,从而实现一次渲染多个模板的效果。具体实现如下:

    1. 将获取栏目列表和获取要闻的代码合并成一个函数,该函数返回一个包含两个数据对象的数组,代码如下:
    function getData(callback) {
      mysql.getLm(function(lmParams) {
        var lmData = lmParams;
        mysql.getYw(function(ywzParams) {
          var ywzData = ywzParams;
          var data = [
            {lm: lmData},
            {ywz: ywzData}
          ];
          callback(data);
        });
      });
    }
    
    1. 在调用该函数时,将渲染模板所需的数据对象传递给模板引擎进行渲染,代码如下:
    getData(function(data) {
      var html = template('./index.html', {indexData: data});
      module.exports.index = html;
    });
    
    1. 在模板中遍历渲染包含多种数据对象的数组,代码如下:
    {{each indexData as item index}}
      {{if item.lm}}
        // 渲染栏目列表数据
      {{else item.ywz}}
        // 渲染要闻数据
      {{/if}}
    {{/each}}
    

    通过这种方式,可以实现多次查询,同时一次渲染多个模板的效果。

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器