gpt4 book ai didi

javascript - meteor : "cannot read property ' xxx' of undefined"& 用变量替换字符串

转载 作者:行者123 更新时间:2023-11-30 17:53:33 25 4
gpt4 key购买 nike

我想使用变量而不是字符串“score20130901”,但如果我用以下代码替换字符串,有时(经常)会出现此错误:“未捕获的类型错误:无法读取未定义的属性‘currentflag’”

我在同一个 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;
};

最佳答案

试试这个:

Template.voting.books = function () { 
var flag = Flags.findOne({_id: "bookflag"});

if (typeof flag !== 'undefined') {
var books = Books.find({flag: flag.currentflag}).fetch();
return _.sortBy(books, function (book) {
return _.reduce(book[flag.currentflag], function (memo, num) {
return memo + num;
});
}).reverse();
}
else return [];
};

对于第二部分,这是:

Template.book.totalscore = function () {
var flag = Flags.findOne({_id: "bookflag"});

if (typeof flag !== 'undefined') {
return _.reduce(this[flag.currentflag], function (memo, num) {
return memo + num;
});
}
else return 0;
};

关于javascript - meteor : "cannot read property ' xxx' of undefined"& 用变量替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18475636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com