sendMsg(msgToSend: string, reciepient: string){
console.log(msgToSend, reciepient, this.user);
let newObj = {from: this.user['name'], msg: msgToSend};
this.sub = this.route.params.subscribe(params => {
let name = reciepient;
this.service.getUser(name).then(user => this.reciepient = user);
})
if(this.reciepient){
console.log(this.reciepient['inbox']);
this.reciepient['inbox'].unshift(newObj);
} else {
console.log('Try again!!');
}
}
私は二人のユーザ、Ram
とSai
を持つユーザデータを持っている私のテンプレートObservableが正常に動作していませんangular2?
<input #reciepient placeholder="Reciepient"/>
<input #message placeholder="Enter your message"/>
<button (click)="sendMsg(message.value, reciepient.value)">Send message</button>
を通じて法上呼び出しています。私はSaiにRamとSendingメッセージとしてログしました。受信者ボックスで私はSaiを言及し、メッセージボックスにメッセージを入力しました。送信メッセージをクリックすると、sendMsg()メソッドと同じように、メッセージはsaiの受信トレイにプッシュされません。これは、elseステートメントと印刷Try again!!
にあるためです。 2番目の+クリックでは、そのプッシュが発生します。同様に、成功を一度押してください。受信者ボックスに名前が何も書かれていない場合は、初めてSaiとメッセージを押す前の値をクリックし、2回目のクリックはnull値をとり、コンソールメッセージTry again!!
を表示します。 Observables
はasynchronuous仕事をしているので、あなたはコールバックへのサブスクリプションからのデータを必要とする任意のフォローアップのコードを配置する必要が私に
は依然として同じ出力に –
あなたはそれを試してみて、デバッグもらえを取得? Webブラウザを使用してデバッグするときにブレークポイントを設定し、すべての命令を実行することができます。 'F12'を押すだけで開発者ツールが起動し、' Sources'タブに切り替えてjsファイルを選択します。 – rinukkusu