У меня есть проблема. В моем угловом проекте у меня есть 2 компонента с двусторонним параметром. Параметр является идентификатором объекта. Оба компонента используют одну и ту же службу, которая хранит список с объектами. Родитель содержит список, в котором вы можете выбрать объект, а ребенок показывает выбранные данные объекта. Вот код родителя: < /p>
Title
{{offer.title}}
< /code>
с TypeScript: < /p>
@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 != offer) {
offers.rowClicked = false;
}
else {
offers.rowClicked = true;
this.offerSelectedId = offers.id;
}
}
}
}
< /code>
А вот подробный компонент: < /p>
Selected offer details(id = {{service.findById(editedOfferId)!.id}})
Title:
Description:
Status:
Highest Bid:
Nothing has been selected yet
< /code>
с TypeScript: < /p>
@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 {
}
}
< /code>
Теперь, когда я нажимаю на объект в родительском компоненте, детали будут загружены в компонент DE Detail, но когда я редактирую, например, поле ввода заголовка, а затем изменить объект в Родитель, я ожидаю, что данные нового выбранного объекта будут загружены. Это происходит, но только поля, которые не были отредактированы в этот момент, поэтому, когда я редактирую заголовок, все будет загружено правильно, но значение заголовка останется прежним. Даже жесткий у объекта есть другое название, значение, которое я печатал, остается в поле ввода. Почему это происходит и как я могу это исправить?
Подробнее здесь: https://stackoverflow.com/questions/693 ... snt-change
Угловое входное значение не меняется ⇐ Html
Программисты Html
1740394845
Anonymous
У меня есть проблема. В моем угловом проекте у меня есть 2 компонента с двусторонним параметром. Параметр является идентификатором объекта. Оба компонента используют одну и ту же службу, которая хранит список с объектами. Родитель содержит список, в котором вы можете выбрать объект, а ребенок показывает выбранные данные объекта. Вот код родителя: < /p>
Title
{{offer.title}}
< /code>
с TypeScript: < /p>
@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;
}
}
}
}
< /code>
А вот подробный компонент: < /p>
Selected offer details(id = {{service.findById(editedOfferId)!.id}})
Title:
Description:
Status:
Highest Bid:
Nothing has been selected yet
< /code>
с TypeScript: < /p>
@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 {
}
}
< /code>
Теперь, когда я нажимаю на объект в родительском компоненте, детали будут загружены в компонент DE Detail, но когда я редактирую, например, поле ввода заголовка, а затем изменить объект в Родитель, я ожидаю, что данные нового выбранного объекта будут загружены. Это происходит, но только поля, которые не были отредактированы в этот момент, поэтому, когда я редактирую заголовок, все будет загружено правильно, но значение заголовка останется прежним. Даже жесткий у объекта есть другое название, значение, которое я печатал, остается в поле ввода. Почему это происходит и как я могу это исправить?
Подробнее здесь: [url]https://stackoverflow.com/questions/69398515/angular-input-value-doesnt-change[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия