0
私はインスタントメッセンジャーを作成します。私の機能(スレッド)をクリックすると、ディスカッションをクリックしてディスカッションを見ることができます。ユーザーは、2つ以上のチャットウィンドウを同時に開くことはできません。 2つのチャットウィンドウが開いているとき(this.threadService.windows.length === 2)、最初のウィンドウを閉じて新しいウィンドウを表示する必要があります。古いパラメータを関数に保存する
私はその後、私の関数のパラメータcloseOldThread(oldThread)として、それを入力するために、変数にこの最初のウィンドウを保存する必要があり
clicked(thread: Thread): void {
this.newWindow = true;
let oldThread: Thread;
if(this.threadService.windows.length === 2) {
this.closeOldThread(oldThread);
}
if (!this.thread.isOpen) {
thread = this.chatService.openThread(thread);
this.chatService.setCurrentThread(thread);
this.thread.isOpen = true;
}
oldThread = thread;
}
////
closeOldThread(thread: Thread): void {
let index = this.threadService.windows.indexOf(thread);
this.threadService.windows.splice(index, 1);
this.thread.isOpen = false;
this.newUser = false;
this.newWindow = false;
}
それは可能ですか? 私の場合、oldThreadは未定義です。
これは機能しません。 ifループ(_this.threadService.windows.length === 2_)で変数(_this.oldThread_)をテストすると、 'undefined'と等しくなります。 – Floriane
'this.threadService.windows'には何が格納されていますか?型 'Thread'のオブジェクト? – Faisal
スレッドの配列がありません: 'windows:Thread [];' – Floriane