为嵌套序列化程序的数据创建一个 Behaviorsubject

Make an Behaviorsubject for nested serializer's data

我试着做一个文章应用。

基于 angular 和 ionic 但我面临的问题是 Behaviorsubject 的编程结构用于序列化器嵌套数据。 我的后端使用 django-rest-framework

*我使用基本数据成功执行了 "CRUD" 操作 (即来自服务器和行为主题的实时更新)仅使用作者数据或文章数据 但嵌套序列化数据失败 *

作者和文章嵌套数据行为主体最佳实践我要

问题。)为一个 URL 创建一个 Behaviorsubject http:本地 host:8000/v1/authors/ 其中使用 嵌套序列化器 和 returns 作者和文章数据 下图 ?

下图显示嵌套的第二个模型的作者数组数据 文章数据 (提前致谢)

[1]:

我的代码articles.service.ts

  extractArticles(data : AuthorsInterface[]){
/*
* Extracting then Returns
  * [] of Articles Data
  * from Parent Data
*/

let localArray = []
if (data.length > 0){
  for( let x in data ){
    if ( data[x].articles.length > 0 ){
      for( let y in data[x].articles){
        localArray.push(data[x].articles[y])
      }
    }
  }
  return this.articlesInterface.concat(localArray)
}

}

getParents() {
/*
* Calling REST-API
  * Extract Authors & Articles
  * from the parent Data
  * & cached them
*/
return this.http.get<AuthorsInterface[]>(this.AUTHOR_URL)
  .pipe(
    map(mapData=>{
        **here comes the combined data of articles and authors **
        *as shown in image*
        this.articlesBehavior.next(
        this.extractArticles(mapData)
      )        
    }
  )
)

我做得对吗?

*现在我只是在从后端接收数据后拆分数据 (通过从作者字典中提取文章数据) 并单独存储

*articlesInterface 用于保存所有文章 用于保存所有作者的 authorsInterface

然后将文章的服务注入作者的服务不知道这是不是最佳实践?

我做了两个BehaviorSubject

您应该在 Author 模型中包含 Article

export interface Article {
  // fields for articles
}

export interface Author {
  // fields for autor
  articles: Article[]
}

这将确保您从 authors 端点获取的数据将与 Author 模型匹配,并且对于 articles 端点使用 Article 模型。

不需要拆分来自 authors 端点的数据。

如果需要列出所有文章而不考虑作者,则创建一个新的 url 其中 returns 所有文章并为此使用 Article 模型。