node.jsのres.renderで提供されているJSONオブジェクトからpugの動的行/ col(以前はテーブルと呼ばれていた)を読み込もうとしています。pugの "group in each element"に値が表示されない
私の問題は、簡単な値が簡単に表示されますが、動的な要素数(ここでは特定のオーディオブックのメディアファイルであることがあります)の行/列定義などのより複雑な操作は入力されません。このような私は単純に(入力フィールドに表示されたメディアタイトルとしてテンプレート内の単純な要素を、言っ
div.form-group
div.row
div.col-2
label(for='varMediaTitle') Titel:
div.col
input#MediaTitle.form-control(type='text', placeholder=varMediaTitle, name='varMediaTitle', required)
div.form-group
div.row
div.col-4
label(for='MediaFileName') Audio Dateien:
div.row
div.col-1 Nr
div.col-5 Name
div.col-2 Groesse
each mediaFile in varMediaFiles
div.row
each itemM in mediaFile
div.col-1
p #{itemM.part}
div.col-5
p #{itemM.name}
div.col-2
p #{itemM.size}
div.row
div.col
input#MediaFileName.form-control(type='file', name='MediaFileName', required)
として:ここで
は私のテンプレートファイルから各...ブロックとスニペットです反復なし)は正しく表示されますが、varMediaFiles内の各mediaFileを含むブロックにはコンテンツが表示されません。
興味深いことに、結果のhtmlを調べると、正しい行数がわかります。つまり、作成された行の数は、jsonファイル内の要素の数に対応します。ここで
あなたが私のNode.jsの機能からフォームに自分のコールを見ることができます:
res.render('tags', {
title: 'RFID Tag Datenseite',
headline: 'RFID Tag Daten',
subheadline: 'Tag ' + obj.TagId + ' - ' + obj.MediaTitle,
varTagId: obj.TagId,
varTagPreTag: obj.TagPreTag,
varTagChecksum: obj.TagChecksum,
varTagRawData: obj.TagRawData,
varMediaTitle: obj.MediaTitle,
varMediaType: obj.MediaType,
varMediaGenre: obj.MediaGenre,
varMediaDescription: obj.MediaDescription,
varMediaFiles: obj.MediaFileName,
varMediaPictures: obj.MediaPicture
});
そして、これは、JSONファイルの構造であるが(それはから読み込ま実際のファイルであります値がフォームに渡され、そこからファイルシステム)、:
{
"TagChecksum": "0x97",
"TagId": "759C71",
"TagPreTag": "0xf00",
"TagRawData": "0F00759C7197",
"MediaTitle": "The 6th book",
"MediaType": "Audiobook",
"MediaGenre": "UNDEFINED",
"MediaDescription": "Beschreibung",
"MediaFileName": [{"part": "1", "name": "1st-file.mp3", "size": "6M"}, {"part": "2", "name": "2nd-file.mp3", "size": "8M"}],
"MediaPicture": [{"pic": "1", "name": "1st-pic.jpg"}, {"pic": "2", "name": "2nd-pic.jpg"}, {"pic": "3", "name": "3rd-pic.jpg"}]
}
任意のアイデア、簡単な反復作業をせずに値が、JSON配列の繰り返し処理しない理由???
私が最初に考えたのは、json構造内に配列があり、jsonファイルの形式に問題がある可能性があったからです。しかし、その場合、なぜ、各ブロックが正しく行数を作成するのか理解できません。
ただし、追加のグリッチが1つあります。 htmlの出力(添付の画像を参照)を調べたところ、実際には反復処理で正しい数の行(ここでは2つのメディアファイル)が作成されますが、各行には非常に多くの列が作成されます。すべての行のすべての列をすべての行に配置するように見えます - 非常に奇妙です。
誰もがこれにいくつかの光を当てることができますか?
敬具と多くの多くのおかげで、
クリスチャン