我想使用一个变量而不是字符串“score20130901”,但如果我用以下代码替换字符串,我有时(经常)会得到这个错误:“Uncaught TypeError: Cannot read property 'currentflag' of undefined”
我在同一个 JavaScript 文件中的其他模板中使用此方法,它可以工作。但不在此模板中。我猜,页面加载太慢或者集合没有完全加载。
新的 JavaScript(这里我想用 test 替换 score20130901)
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"
});
.
.
另一个问题是,我正在拼命地用一个变量替换同一个字符串,如果字符串有一个带有 [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;
};