【发布时间】:2015-03-17 21:02:55
【问题描述】:
Node.js - Jade - socket.io - jQuery - JSON
在我的“index.jade”中,我有以下代码,其中“结果”数据作为 JSON 来自后端:
extends layout
block content
ul
// more jade html here
script.
socket.on('results', function(results) {
results.forEach(function(item){
name = item.name;
$('ul').append('<li>'+name+'</li>');
});
});
这可行,但是,因为稍后我将有更多的内容和标签推送到“ul”中,所以我不想在“append()”中包含大量连接的 html。
我真的很喜欢 Jade 格式:
ul
each val, index in results
li= results[index].name
虽然我不能在我的“块内容”中编写最后一段代码,因为“socket.on('results')”尚未触发并引发错误。
有没有优雅的写法?
【问题讨论】:
-
您可以在数据返回后重新渲染布局。在初始渲染时,您可以只渲染加载微调器或某种空状态。数据到来后,重新渲染并包含所有名称
-
追加一次(大块 html)比多次追加小块更有效
-
谢谢。本质上我的问题是:而不是有一个又长又丑的 append('
- name: '+name+'
') 等等……我可以有一个附加(模板),其中模板是保存在别处的一块单独的玉石吗?- age: '+age+'
- name: '+name+'
标签: javascript jquery json node.js pug