小编Kev*_*one的帖子

如何将过滤器与 switchMap 一起使用?

我有一个可观察的对象,它应该监视具有类型的每条聊天消息'private'

所以我想做的是使用filter()rxjs 中的函数来观察每个具有类型的聊天消息private,这样我就可以在我的变量中使用它chatMessagePrivate$

这是我尝试过的:

export type ChatType = 'private' | 'standard';

export class ChatMessage {
  uid?: string;
  chatRoomUid: string;
  type: ChatType;
}

chatMessagePrivate$: Observable<ChatMessage[]>;

ngOnInit() {
  this.chatMessagePrivate$ = this.chatRoom$.pipe(
    switchMap((chatRoom: ChatRoom) => this.chatMessageService.getAllByChatRoomUid$(chatRoom.uid) // this function returns every message from the uid of the chatroom
      .filter(chatRoom => 'private')
      )
    );
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:Type 'string' is not assignable to type 'boolean'

我如何使用filter()该类型获取所有 ChatMessage 'private'

rxjs typescript angular

3
推荐指数
1
解决办法
6442
查看次数

如何使用 EventEmitter 获取输出值?

我有一个组件,单击它时会发出一个简单的字符串

我的组件的 HTML:

<div (click)="emitSomething($event)"></div>
Run Code Online (Sandbox Code Playgroud)

我的组件的 TypeScript:

@Output() someString: EventEmitter<string> = new EventEmitter();

emitSomething(event: string) {
  this.someString.emit(event)
}
Run Code Online (Sandbox Code Playgroud)

现在,我想将这个简单的字符串传递给另一个组件,以便我可以在其他组件中使用它,我该怎么做?

我在第二个组件中尝试的内容:

@Output() someString: EventEmitter<string> = new EventEmitter();

emitSomething(event: string) {
  this.someString.emit(event)
}
Run Code Online (Sandbox Code Playgroud)

我的第二个组件的 TypeScript:

@Output() someString: EventEmitter<string> = new EventEmitter();

variable: string; // This variable should have the string value of my first component 
Run Code Online (Sandbox Code Playgroud)

编辑:这是我执行此操作时控制台输出的内容

Can't bind to 'someString' since it isn't a known property of 'component-one'.

typescript angular

2
推荐指数
1
解决办法
7940
查看次数

标签 统计

angular ×2

typescript ×2

rxjs ×1