Node.js - Jade - socket.io - jQuery - JSON
在我的“index.jade”中,我有以下代码,其中“results”数据来自后端作为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')”尚未被触发并引发错误。
有没有一种优雅的方式来写这个?
答案 0 :(得分:0)
您也可以在客户端上使用jade。看看jadeify
:
https://github.com/domenic/jadeify
有了这个,你可以拥有row.jade
,并在每个套接字消息上附加一行:
var template = require('views/row.jade');
var $ul = $('ul');
socket.on('row', function(item) {
$uk.append(template(item));
});
然后只需调整套接字一次发出一行。