我使用角度4和firebase与angularFire2, 我在firebase中有一棵看起来像这样的树
{
"monday": {
"9": true,
"10": true,
"11": true,
"12": true,
"13": true,
"14": true,
"15": true,
"16": true,
"17": true,
"18": true,
"19": true
},
"tuesday": {
"9": true,
"10": true,
"11": true,
"12": true,
"13": true,
"14": true,
"15": true,
"16": true,
"17": true,
"18": true,
"19": true
},
}...
每个'时间'插槽I渲染按钮,我想在angularFire中完成的是在点击时切换布尔值。
代码我已尝试
blockTime(time: number): void {
const idx = _.indexOf(this.times, time);
if (idx !== -1) {
this.times.splice(idx, 1);
} else {
this.times.push(time);
}
}
///
this also
blockTime(time: number) {
this.times[time] = !(this.times[time] || false);
}
我知道我离开了!
答案 0 :(得分:0)
很难确定问题是什么,但最小功能本身似乎工作正常。
var json = {
"monday": {
"9": true,
"10": true,
"11": true,
"12": true,
"13": true,
"14": true,
"15": true,
"16": true,
"17": true,
"18": true,
"19": true
},
"tuesday": {
"10": false,
"11": true,
"12": true,
"13": true,
"14": true,
"15": true,
"16": true,
"17": true,
"18": true,
"19": true
}
};
function toggleTime(day, time) {
json[day][time] = !(json[day][time] || false);
}
console.log(json);
toggleTime("monday", 9);
toggleTime("tuesday", 9);
toggleTime("tuesday", 10);
console.log(json);

问题更可能在于如何调用函数或如何绑定到Angular。请确保您的问题包含重现问题所需的所有代码。这样做的一个好方法是在像jsbin这样的工具中重现问题(因为使用Firebase数据库的编码无法在Stack Overflow片段中运行)。