我有一個ngonchanges沒有觸發的問題。NgOnChanges不會在HTTP請求後觸發
我有這個組件:
@Component({
selector: 'conversation-detail',
templateUrl: './conversation-detail.component.html'
})
export class ConversationDetailComponent implements OnChanges{
@Input()
selectedConversation: Conversation;
title = 'Conversation Detail';
convoMessages: Array<Message> = [];
constructor(
private _messageService: MessageService
){};
ngOnChanges(changes: SimpleChanges){
this.getMessages();
}
ngOnInit(): void{
}
private getMessages(){
if(this.selectedConversation != undefined){
this._messageService.getMessagesForConversation(this.selectedConversation.ConversationId).then(
data => {
if (data) {
this.convoMessages = data.serviceResult as Array<Message>;
} else {
//This really should never happen
console.error('Error retrieving users data: Data object is empty');
}
},
error => {
//loader.dismiss();
console.error('Error retrieving users data');
console.dir(error);
}
);
}
}
}
的ngonchanges將觸發第一次selectedConversation變化。 GetMessages被調用並加載消息數據。之後,當selectionConversation更改時,ngonchanges不再觸發。
如果我將函數調用註釋到getMessages,那麼ngonchanges將在每次selectedConversation更改時觸發。
所以,我不確定getMessages中發生了什麼,切斷了ngonchanges的發射。請求返回數據,通話結束。有人有主意嗎?
您是否檢查控制檯以查看是否沒有阻止代碼進一步執行的js錯誤? – Meir
控制檯中沒有錯誤。 – HarvP