残念ながら、私は画像を投稿することを許可されていないため、目前の問題を示すのが少し難しくなっています. というわけでここで説明します。最後の Meteor オンスクリーン ディスプレイには、項目を含む請求書があります。項目とすべてが完全に機能し、期待どおりに表示されます。私がやりたかったのは、4 つの行項目が画面に印刷された後に #each-loop に「侵入」し、それから何か他のこと (小計の計算と印刷) を行うことでした。私が作成したセッション変数は、すべての項目で反応的に変更されないように見えるため、それを機能させることはできません。代わりに、完全な #each ループの最後の値を保持しているようです。
そこには listindex 変数があり、#each ループ内にある各行項目で 1、2、3、および 4 に完全に再アクティブ化されることに注意してください。そのため、listindex 変数は#each ループ内でリアクティブに機能します。
同時に、そこにセッション変数を導入しています。これは、行項目番号 4 で「true」になり、他のすべての場合では「false」になります。「true」の場合、「onderbreking」がすぐそこに表示されます。ただし、セッション変数は常に「true」を返し、(そのため)常に「onderbreking」を出力します。もちろん、それは私が意図した方法ではありません。
listindex が機能し、セッション var が機能しない理由がわかりません。
これが私のjavascriptです。テンプレートは「layout6.html」と呼ばれます。
Template.layout6.helpers({
// Bereken de index in de #each loop
listIndex: function() {
currentIndex += 1;
if(currentIndex == 4) {
Session.set('sessionPageBreak1', true);
}
if(currentIndex != 4) {
Session.set('sessionPageBreak1', false);
}
return currentIndex;
},
});
Template.layout6.SessionPageBreak1 = function() {
// Voeg de waarde van de sessie variabele toe aan de template
var data = Session.get('sessionPageBreak1');
return data;
};
セッション変数は最初にここで設定されます。
// Session var for layoutcounter
Session.setDefault('sessionPageBreak1', false);
Session.setDefault('sessionPageBreak2', false);
Session.setDefault('sessionPageBreak3', false);
var currentIndex = 0.0;
最後に、これは layout6.html に関連する html です。
{{#each factuur6.lineItems}}
{{listIndex}}
{{SessionPageBreak1}}
{{#if SessionPageBreak1}}
<div><p>onderbreking</p></div>
{{/if}}
もちろん、{{/each}} ステートメントもありますが、その間にこの問題とはあまり関係のないコードがたくさんあるので、ここには入れませんでした。
私は私がすべてを含めたことを願っています.
問題は、セッション変数が #each ループ内で反応的に変化しないように、私は何を間違っているのでしょうか?