Значение углового ввода не меняетсяHtml

Программисты Html
Ответить
Anonymous
 Значение углового ввода не меняется

Сообщение Anonymous »

У меня проблема. В моем проекте Angular у меня есть 2 компонента с двусторонним параметром. Параметр представляет собой идентификатор объекта. Оба компонента используют один и тот же сервис, хранящий список объектов. Родительский элемент содержит список, в котором вы можете выбрать объект, а дочерний элемент показывает сведения о выбранном объекте. Вот код родителя:

Код: Выделить всё



Title


{{offer.title}}





с машинописным текстом:

Код: Выделить всё

@Component({
selector: 'app-overview3',
templateUrl: './overview3.component.html',
styleUrls: ['./overview3.component.css']
})
export class Overview3Component implements OnInit {

public offerSelectedId: number = -1;

constructor(public service1: OffersService) { }

ngOnInit(): void {
}

public highlightClickedRow(offer :Offer) {
let offers: Offer[] = this.service1.findAll();
for (let i = 0; i < offers.length; i++) {
if (offers[i] != offer) {
offers[i].rowClicked = false;
}
else {
offers[i].rowClicked = true;
this.offerSelectedId = offers[i].id;
}
}
}

}
А вот детальный компонент:

Код: Выделить всё




Selected offer details(id = {{service.findById(editedOfferId)!.id}})


Title:



Description:



Status:








Highest Bid:






Nothing has been selected yet

С помощью машинописного текста:

Код: Выделить всё

@Component({
selector: 'app-detail3',
templateUrl: './detail3.component.html',
styleUrls: ['./detail3.component.css']
})
export class Detail3Component implements OnInit {

@Input() editedOfferId: number = -1;
@Output() editedOfferChanged = new EventEmitter();

public selectedOffer: Offer = new Offer("", "", new Date(), AuctionStatus.NEW, 0);

status = AuctionStatus
keys: Array;

constructor(public service: OffersService) {
this.keys = Object.keys(this.status).filter(k => !isNaN(Number(k))).map(Number);
this.selectedOffer = service.findById(this.editedOfferId)!;
}

ngOnInit(): void {
}

}
Теперь, когда я нажимаю на объект в родительском компоненте, детали будут загружены в компонент детализации, но когда я редактирую, например, поле ввода заголовка, а затем меняю объект в родительском компоненте, я ожидаю, что данные нового выбранного объекта будут загружены. Такое происходит, но только с теми полями, которые в тот момент не редактировались, поэтому когда я редактирую заголовок, все загрузится корректно, но значение заголовка останется прежним. Даже если у объекта другой заголовок, значение, которое я вводил, остается в поле ввода. Почему это происходит и как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/693 ... snt-change
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»