使用 AngularFire,我正在扩展对象工厂,以便封装数据并允许特定功能,如官方教程中所述。我有一个如下的数据结构:
{
'articles': {
'article-asd876a': {
title: 'abc',
text: 'lorem ipsum ...',
comments: {
'comment-ad4e6a': true,
'comment-dsd9a7': true
}
}
},
'comments': {
'comment-ad4e6a': {
text: 'comment text1',
articleId: 'article-asd876a'
},
'comment-dsd9a7': {
text: 'comment text2',
articleId: 'article-asd876a'
}
}
}
现在我希望能够做到这一点:
var article = new Article(8); // Returns the object created by my object factory, fetching data from firebase
var comments = article.getComments(); // Returns an array of type Comment
var firstText = comments[0].getText();
var article2 = comments[0].getArticle(); // article2 === article
但这对我来说在很多层面上都失败了。其中之一是:在文章中,我只能存储评论 ID,因此必须使用 new Comment(commentId) 重新创建评论对象,为此我需要将评论注入文章。评论也是如此,所以我最终得到了一个循环依赖文章 -> 评论 -> 文章。以下小提琴显示了该行为:http: //jsfiddle.net/michaschwab/v0qzdgtq/。
我究竟做错了什么?这对角度来说是一个糟糕的概念/结构吗?谢谢!!