有jade和loop的问题从mysql查询中抛出一个数组。当我console.log
一行我试图记录它时会抛弃它。
{ id: 512,
first: 'Mark',
last: 'Neal',
client: 'City of South Bend',
employer: null,
access: null }
哪个好。
现在我正在设置它,所以jade会自动填写列名和列。无论如何这是我的玉码。
block content
.container
h1 Data Tables
.span12
table.table.table-striped.table-bordered.table-condensed
thead
each f in fields
th= f.name
tbody
each i in results
tr
each b in i
td= b
显然我不能发布图片,因为这是我的第一篇文章,所以我会尽力复制和粘贴。
不是停留在}
,而是在两个新列中继续这样做。
function (parser, fieldPackets, typeCast, nestTables, connection) {
var self = this;
var next = function () {
return self._typeCast(fieldPacket, parser, connection.config.timezone, connection.config.supportBigNumbers, connection.config.bigNumberStrings);
};
for (var i = 0; i < fieldPackets.length; i++) {
var fieldPacket = fieldPackets[i];
var value;
if (typeof typeCast == "function") {
value = typeCast.apply(connection, [new Field({
packet: fieldPacket,
parser: parser
}), next]);
} else {
value = (typeCast) ? this._typeCast(fieldPacket, parser, connection.config.timezone, connection.config.supportBigNumbers, connection.config.bigNumberStrings) : ((fieldPacket.charsetNr === Charsets.BINARY) ? parser.parseLengthCodedBuffer() : parser.parseLengthCodedString());
} if (typeof nestTables == "string" && nestTables.length) {
this[fieldPacket.table + nestTables + fieldPacket.name] = value;
} else if (nestTables) {
this[fieldPacket.table] = this[fieldPacket.table] || {};
this[fieldPacket.table][fieldPacket.name] = value;
} else {
this[fieldPacket.name] = value;
}
}
}
function (field, parser, timeZone, supportBigNumbers, bigNumberStrings) {
var numberString;
switch (field.type) {
case Types.TIMESTAMP:
case Types.DATE:
case Types.DATETIME:
case Types.NEWDATE:
var dateString = parser.parseLengthCodedString();
var dt;
if (dateString === null) {
return null;
}
if (timeZone != 'local') {
if (field.type === Types.DATE) {
dateString += ' 00:00:00 ' + timeZone;
} else {
dateString += ' ' + timeZone;
}
}
dt = new Date(dateString);
if (isNaN(dt.getTime())) {
return dateString;
}
return dt;
case Types.TINY:
case Types.SHORT:
case Types.LONG:
case Types.INT24:
case Types.YEAR:
case Types.FLOAT:
case Types.DOUBLE:
numberString = parser.parseLengthCodedString();
return (numberString === null || (field.zeroFill && numberString[0] == "0")) ? numberString : Number(numberString);
case Types.NEWDECIMAL:
case Types.LONGLONG:
numberString = parser.parseLengthCodedString();
return (numberString === null || (field.zeroFill && numberString[0] == "0")) ? numberString : ((supportBigNumbers && (bigNumberStrings || (Number(numberString) > IEEE_754_BINARY_64_PRECISION))) ? numberString : Number(numberString));
case Types.BIT:
return parser.parseLengthCodedBuffer();
case Types.STRING:
case Types.VAR_STRING:
case Types.TINY_BLOB:
case Types.MEDIUM_BLOB:
case Types.LONG_BLOB:
case Types.BLOB:
return (field.charsetNr === Charsets.BINARY) ? parser.parseLengthCodedBuffer() : parser.parseLengthCodedString();
case Types.GEOMETRY:
return parser.parseGeometryValue();
default:
return parser.parseLengthCodedString();
}
}
答案 0 :(得分:0)
如果我们只是查看JADE代码,那么这可能会有所帮助。 我解决了这样一个类似的程序:
- each value, i in results
tr
- var count = 0
- each b in i
- if(count < Object.keys(value).length)
td= b
- count += 1
我更改了自己的变量的名称,因此它可以适合您的JADE文件。
希望代码示例非常自我解释,但要解释它的工作原理:
变量“value”中的第一个将获得数组“results”中的每个项目,即使这是一个只有不同键值的JSON对象。
之后我制作了一个计算键数量的变量。如果您没有对Object.keys(element).length)进行检查,那么它将再打印2个值,即“parse”值和“_typeCast”值。
无论如何,这个count变量只计算使用过的键的数量,这些键后来与JSON数组中的键总数相比,当所有键被打印出来之后它就不再打印了。
希望这对你(或其他人)有帮助!)