を追加することで、重複する値を与えるように私は、この配列データを表示しようとしている...私の流星アプリでテーブル内流星:表示アレイデータテーブルは、新しい列
var data = [
[ 'field 1', 'field 2', 'field 3' ],
[ 'field 1', 'field 2', 'field 3' ],
[ 'field 1', 'field 2', 'field 3' ]
];
:
<table>
<tbody>
{{#each data}}
<tr>
{{#each this}}
<td><input type="text" value="{{this}}"></td>
{{/each}}
<td><input type="text" value=""></td>
</tr>
{{/each}}
</tbody>
</table>
新しい列を追加するには、各行の末尾に常に空白のinput
を置く必要があります。入力が変更されます場合は
'change input': function(event) {
var data = [],
tr = [];
$('tbody tr').each(function() {
$(this).find('input[type="text"]').each(function() {
tr.push($(this).val());
});
data.push(tr);
});
Table.update(
{ _id: id },
{ $set:
{
data: data
}
}
);
},
しかし、私は最後の入力に入力を行う場合は、新しいフィールドが配列に追加されますが、値が取得します新しい最後の入力フィールドにも表示されるので、重複が表示されます。私はテンプレートのマークアップのように、最後のフィールドが常に空である理由を理解していません。なぜなら、値が得られず、each
-loopの外です。
最後の入力配列は、ユーザーが入力した値と新しいデータ配列がテンプレートを作成するために使用されているようです。
(1)ご提供されたコードによると、配列 'tr'を配列に押した後、空にされることはありません'data'では、' change'イベントごとに入力フィールドの数が指数関数的に増加するはずです。 (2)方法によって、jQueryスクリプトが考案されました。すべての 'change'イベントは、少なくとも新しいデータが入力されたかどうかにかかわらず、フィールドの数を1増加させます。 (3)**複製の理由**は、Meteorがテンプレートを再レンダリングする方法によるものと思われます。 Meteorはおそらく最初から削除して再生成するのではなく、必要に応じていつでもDOMを更新します。 –