Используя AngularFire, я расширяю объекты-объекты, чтобы иметь инкапсулированные данные и разрешать определенные функции, как объясняется в official tutorial. У меня есть структура данных, как в следующем:AngularFire ObjectFactory Childobjects вызывает круговую зависимость
{
'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 и, следовательно, должен воссоздать объект комментария с помощью нового комментария (commentId), для которого мне нужно ввести комментарий в статью. То же самое верно для комментария, так что я получаю круговую зависимость статьи -> Комментарий -> Статья. Следующая скрипка показывает поведение: http://jsfiddle.net/michaschwab/v0qzdgtq/.
Что я делаю неправильно? Является ли это плохой концепцией/структурой для углового? Благодаря!!
Здесь нет кода, использующего $ extendFactory, а также полученную вами ошибку или какое-либо объяснение того, что не так с наличием круговой ссылки в этом случае. – Kato
Извините, я вижу, что это сбивает с толку. Я добавил jsfiddle, показывающий, что я пытаюсь сделать, но я все еще пытаюсь заставить его работать на jsfiddle. Надеюсь, это поможет, и спасибо за попытку. Проблема, которую я имею, это просто то, что angularjs не будет работать, только давая мне ошибку «Circular Dependency». Я могу сделать var Comment = $ injector.get ('Comment'); чтобы избежать ошибки, это лучшее решение? –
Это связано с http://stackoverflow.com/questions/19344214/problems-with-circular-dependency-and-oop-in-angularjs, но я не знаю, какое лучшее решение при попытке создать реляционный слой абстракции db. –