Angularjs 错误类型错误:无法读取属性';详情';未定义的

Angularjs 错误类型错误:无法读取属性';详情';未定义的,angularjs,typescript,Angularjs,Typescript,我在本地服务器上有一个纯文本,我想用angular显示在我的网页上。我有我的模型、服务和组件。 所以我在这一行得到一个错误>this.parations=this.announcement.details.split(“#”) 我试过用?运算符(this.parations=this.announcement?.details.split(“#”),但它无法生成 模型 服务 getAnnouncementById(id) { return this.http.get<Announc

我在本地服务器上有一个纯文本,我想用angular显示在我的网页上。我有我的模型、服务和组件。 所以我在这一行得到一个错误>
this.parations=this.announcement.details.split(“#”)

我试过用?运算符
(this.parations=this.announcement?.details.split(“#”)
,但它无法生成

模型

服务

getAnnouncementById(id)
{
    return this.http.get<Announcements>('http://localhost:49674/api/Announcements/' + id)
                    .pipe(catchError(this.errorHandler));
}
组件-.html

<div class="article column full">
     <div *ngFor=" let paragraph of paragraphs">
         <p>{{paragraph.details}}</p>
     </div>
</div>

{{段落.细节}


this.parations=this.announcement.details.split(“#”)
在this.announcement=data之前调用,因此this.announcement在那一刻未定义

为了确保这两个值已经来自可观察值,您可以使用
combinelateest
函数或
switchMap
操作符

添加
运算符是一种解决方法。你的可观察到的仍然可以调用意外的命令

e、 g:

this.route.paramMap.pipe(switchMap((params:paramMap)=>{
让id=parseInt(params.get('id');
this.announcementId=id;
this.getannentbyid(id);
返回此.announcementservice.getAnnouncementById(id)
})).订阅((数据)=>{
this.announcement=数据
this.parations=this.announcement.details.split(“#”);
});

在这种情况下,代码订阅将在第一个observable发出值后开始。

将angularjs重新标记到angularI中会出现错误:类型“observable”上不存在属性“switchMap”。我已经导入:
import{switchMap}来自'rxjs/operators'当然,我的坏消息我忘了
.pipe(
我更新了答案,请现在检查
import { Announcements } from '../models/Announcement';

    export class ReadMoreComponent implements OnInit 
    {
      public announcementId;
      public announcement : Announcements
      public paragraphs = [];

      constructor(
        private route: ActivatedRoute,
        private router:Router,
        private announcementservice: AnnouncementsService
      ){}

      ngOnInit() 
      {
        this.route.paramMap.subscribe((params:ParamMap) => {
          let id = parseInt(params.get('id'));
          this.announcementId = id;

          this.getAnnouncenentById(id)

          //split
          this.paragraphs = this.announcement.details.split('#');
        })
      }

      getAnnouncenentById(id){
        this.announcementservice.getAnnouncementById(id)
        .subscribe(data => this.announcement = data);
    }
<div class="article column full">
     <div *ngFor=" let paragraph of paragraphs">
         <p>{{paragraph.details}}</p>
     </div>
</div>