在我的應用程序中我有一個硬編碼的json對象。該值與視圖中的輸入控件綁定。但如果我在某些事件期間更改json對象的值,那麼這些更改值不會反映在視圖/輸入控件中?我如何強制重新加載/刷新視圖?如何有效地重新加載/刷新組件視圖?
請看下面的組件。因爲在構件的加載過程中,我在構造函數中賦值的值反映在視圖中。 基於父組件上的某些事件,將調用方法LoadExtractorQueueDetails(),並將使用其他值重置相同變量this.sampleData。
理想情況下,我希望這些值能夠反映在視圖中?但這似乎並沒有發生? 爲什麼沒有發生?我如何重新加載/刷新視圖?
import { Component, Input, OnInit } from '@angular/core'
import { FORM_DIRECTIVES } from '@angular/common';
@Component({
selector: 'extractorQueueDetails',
directives: [FORM_DIRECTIVES],
providers: [CacheDataService, HTTP_PROVIDERS],
templateUrl: './HTML/Admin/ExtractorQueueDetails.html'
})
export class ExtractorQueueDetails {
resultData: ExtractorQueueItem;
sampleData: Sample;
constructor() {
console.log("ExtractorQueueDetails component is loaded");
this.sampleData = { queueId: 123, name: "Krishnan" };
}
public LoadExtractorQueueDetails() {
console.log("in LoadExtractorQueueDetails of ExtractorQueueDetails");
this.sampleData = { queueId: 456, name: "Krishnan123" };
console.log(this.sampleData);
}
}
我的HTML模板就像下面
<input type="text" name="txtQueueID" class="form-control" id="txtQueueID" [(ngModel)]="sampleData.queueId" />
<input type="text" name="Description" class="form-control" [(ngModel)]="sampleData.name" id="Description" />
我的實際問題是不同的,我使用包裹在angular2中的一個kendogrid組件,在一個rowclick事件中,我需要調用這個子組件,並且我需要將rowID傳遞給子組件以使服務調用和.. 。由於ComponentResolver已被棄用,我無法找出其他可行的方法來實現這一點,由於時間限制。我同意在子組件中調用方法的方法並不是一個好的方法。如果你有更好的方法來達到我的上述要求,那麼請分享/提供我的投入..我一定會想要實施 – Krishnan
註冊。在子組件中使用提供者:因爲我需要提供一個非常特定於子組件的服務調用,所以我在這裏使用了提供者。這裏我不會有多個實例,但是應該使用基於在kendogrid/parent中單擊的行ID的新數據集刷新相同的實例視圖。 – Krishnan
@Krishnan - 我已經更新了我的回答,以反映您評論中的信息。 –