в моем приложении У меня есть 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" />
Моя фактическая проблема - это что-то другое, я использую компонент kendogrid, завернутый в angular2, в событие rowclick мне нужно вызвать этот дочерний компонент, и мне нужно передать rowID дочернему компоненту, чтобы сделать вызовы служб и .. . Поскольку ComponentResolver устарел, я не мог понять другие возможные способы реализации этого из-за ограничений по времени. Я согласен с тем, что метод вызова метода в childcomponent не является хорошим aproach. Если у вас есть лучший подход к выполнению моих вышеуказанных требований, то, пожалуйста, поделитесь/предоставите мне материалы. Я бы определенно хотел, чтобы это было реализовано. – Krishnan
Рег. используя поставщиков в дочернем компоненте: так как мне нужно сделать вызов службы, который очень специфичен для дочернего компонента, я использовал провайдеров здесь. здесь я не собираюсь иметь несколько экземпляров, но один и тот же экземпляр должен обновляться с помощью нового набора данных на основе идентификатора строки, щелкнутого в файле kendogrid/parent. – Krishnan
@ Krishnan - Я обновил свой ответ, чтобы отразить информацию из ваших комментариев. –