angularfire2 通过动态数据内容设置 object 的标题
angularfire2 set the title of an object by dynamic data content
是否可以使用字符串变量设置 object 的名称?
例如:
car: {
brands: {
var1: {},
/*where var1 is a model and want to add some more models in different spaces in time.*/
}
}
这是我认为可行的查询:
addBrand (var1) {
var brandRef = firebase.database () .ref ().child ('car/brands');
brandRef.set ({
var1: {}
});
}
我得到的输出是文本 var1
,而不是它的值。
有什么方法可以实现吗?
更新答案
你可以这样做:
addBrandInfo (brandName, brandInfo) {
let brandRef = firebase.database().ref(`car/brands/${brandName}`);
brandRef.set(brandInfo);
}
updateBrandInfo (brandName, brandInfo) {
let brandRef = firebase.database().ref(`car/brands/${brandName}`);
brandRef.update(brandInfo);
}
以下部分试图通过示例展示每个调用如何影响 firebase:
// Let's assume your firebase is empty.
addBrandInfo('tesla', { established: 2003, founder: 'Elon Musk' });
// car: {
// brands: {
// tesla: { established: 2003, founder: 'Elon Musk' }
// }
// }
addBrandInfo('ford', { established: 1905, founder: 'Henry Ford' });
// car: {
// brands: {
// ford: { established: 1905, founder: 'Henry Ford' },
// tesla: { established: 2003, founder: 'Elon Musk' }
// }
// }
updateBrandInfo('ford', { established: 1903 });
// car: {
// brands: {
// ford: { established: 1903, founder: 'Henry Ford' },
// tesla: { established: 2003, founder: 'Elon Musk' }
// }
// }
请注意最后一次调用 updateBrandInfo()
只更新福特的成立年份,但它让创始人 Henry Ford
独自一人。
注意 car/brands/${brandName}
周围的单引号是一个反引号,不是 单引号。
我做的是:
let brandRef = firebase.database () .ref ().child ('car/brands');
brandRef.child (var1).set ({
whatever: ''
});
完美运行!
使用 Angularfire2 尝试如下方法:
addbrand (var1, value) {
const toSend = this.af.database.object(`/car/brands/${var1}`);
toSend.set(value);
}
是否可以使用字符串变量设置 object 的名称?
例如:
car: {
brands: {
var1: {},
/*where var1 is a model and want to add some more models in different spaces in time.*/
}
}
这是我认为可行的查询:
addBrand (var1) {
var brandRef = firebase.database () .ref ().child ('car/brands');
brandRef.set ({
var1: {}
});
}
我得到的输出是文本 var1
,而不是它的值。
有什么方法可以实现吗?
更新答案
你可以这样做:
addBrandInfo (brandName, brandInfo) {
let brandRef = firebase.database().ref(`car/brands/${brandName}`);
brandRef.set(brandInfo);
}
updateBrandInfo (brandName, brandInfo) {
let brandRef = firebase.database().ref(`car/brands/${brandName}`);
brandRef.update(brandInfo);
}
以下部分试图通过示例展示每个调用如何影响 firebase:
// Let's assume your firebase is empty.
addBrandInfo('tesla', { established: 2003, founder: 'Elon Musk' });
// car: {
// brands: {
// tesla: { established: 2003, founder: 'Elon Musk' }
// }
// }
addBrandInfo('ford', { established: 1905, founder: 'Henry Ford' });
// car: {
// brands: {
// ford: { established: 1905, founder: 'Henry Ford' },
// tesla: { established: 2003, founder: 'Elon Musk' }
// }
// }
updateBrandInfo('ford', { established: 1903 });
// car: {
// brands: {
// ford: { established: 1903, founder: 'Henry Ford' },
// tesla: { established: 2003, founder: 'Elon Musk' }
// }
// }
请注意最后一次调用 updateBrandInfo()
只更新福特的成立年份,但它让创始人 Henry Ford
独自一人。
注意 car/brands/${brandName}
周围的单引号是一个反引号,不是 单引号。
我做的是:
let brandRef = firebase.database () .ref ().child ('car/brands');
brandRef.child (var1).set ({
whatever: ''
});
完美运行!
使用 Angularfire2 尝试如下方法:
addbrand (var1, value) {
const toSend = this.af.database.object(`/car/brands/${var1}`);
toSend.set(value);
}