如何解决Angular

时间:2016-01-26 23:31:19

标签: angularjs circular-dependency angular-services

我有NewsServicePersonService以及PersonNewsItem的模型。以下是不包括服务的简化表示。

//angular service to expose Person
var Person = function(data) {
    angular.copy(data, this);
    //some other initialisation
}
Person.prototype.getNews = function() {
    //fetch news
    .then(function(newsItems) {
        return newsItems.map(function(newsItemData){
            newsItemData.author = new Person(newsItemData.author);
            return new NewsItem(newsItemData);
        });
    });
}

//Angular service to expose NewsItem
var NewsItem = function(data) {
    angular.copy(data, this);
    //some other initialisation
}
NewsItem.prototype.getComments = function() {
    //fetch comments
    .then(function(commentsData){
        return comments.map(function(commentData) {
            commentData.author = new Person(commentData.author);
            return new Comment(commentData);
        });
    });
}

//Angular services that reference these objects
NewsService
PersonService

NewsItem和Person相互引用,因为从各自API获取的数据包括应由另一个对象实例化的数据。有许多服务和模型相互引用,我遇到循环依赖的问题迫使我在其他地方实例化对象,我想避免。我无法想到一个优雅的解决方案,可以真正使用你的帮助。

0 个答案:

没有答案