文字列「score20130901」の代わりに変数を使用したいのですが、文字列を次のコードに置き換えると、時々 (非常に頻繁に) 次のエラーが表示されます。
同じ JavaScript ファイル内の他のテンプレートでこのメソッドを使用していますが、機能します。しかし、このテンプレートにはありません。ページの読み込みが遅すぎるか、コレクションが完全に読み込まれていないと思います。
新しい JavaScript (ここでは、score20130901 を test に置き換えたい)
Template.voting.books = function () {
var flag = Flags.findOne({_id: "bookflag"});
test = flag && flag.currentflag;
//alert(test);
var books = Books.find({flag: "score20130901"}).fetch();
return _.sortBy(books, function (book) {
return _.reduceRight(book.score20130901, function (memo, num) {
return memo + num;
});
}).reverse();
};
データベース:
Flags.insert({
_id: "bookflag",
currentflag: "score20130901"
});
.
.
もう1つの問題は、文字列に [i] のような配列がある場合、同じ文字列を変数に置き換えようと必死になっていることです。
JavaScript:
Template.book.totalscore = function () {
var flag = Flags.findOne({_id: "bookflag"});
test = flag.currentflag;
var total = 0;
for (var i=0; i<5; i++) {
total += this.test[i];
}
return total;
};