我使用的是Firebase,还有一个带有单词的“字典”,每个单词都有不同的定义。我正在尝试从后端获取包含某个单词的定义的数组,并将新定义添加到其中。
这是数据的样子:
words
'Word1'
'Definitions'
'Definition1'
'Definition2'
'Word2'
'Definitions'
'Definition1'
我所做的是,但是我无法从值更改中获得属性“ definitions”:
let data = {
name: word,
definitions: [],
}
let newDefinition = 'Some definition'
let obj = this.db.object(`words/${word}`);
let obs = obj.valueChanges().subscribe(x => {
changes = x;
// If the word doesn't exist, create it.
if (x === null) {
data.definitions.push(this.newDefinition);
obj.set({ definitions: data.definitions, word: data.word });
// If the word exists add the definition to its list.
} else {
data.definitions = x.definitions;
data.definitions.push(this.newDefinition);
obj.update({ definitions: data.definitions });
}
obs.unsubscribe();
});
答案 0 :(得分:0)
最简单的方法是将x
强制转换为any
:
data.definitions = (<any>x).definitions;
但是为了完整性,您应该使用TypeScript接口为从数据库中获取的数据定义结构。