Я пытаюсь изучить Angular8, но теперь у меня возникла проблема с некоторым кодом для передачи объекта или значения из одного компонента в другой.
Я пробовал @ Input и с этим результат не определен.
У меня есть этот компонент, который возвращает, с [(ngModel)] результат двух входных данных;название и описание. после компонента app-add-item
import { Component, OnInit} from '@angular/core';
@Component({
selector: 'app-add-item',
templateUrl: './add-item.component.html',
styleUrls: ['./add-item.component.scss'],
})
export class AddItemComponent implements OnInit {
items = [];
// itemList -> chenge next whit the list of lists for choice one
itemList = 'example';
itemID: number = this.items.length + 1;
itemTitle: string;
itemDescription: string;
ngOnInit() {
this.itemTitle = '';
this.itemDescription = '';
}
addItem() {
this.items.push({
list: this.itemList,
id: this.itemID,
title: this.itemTitle,
description: this.itemDescription,
completed: false,
});
this.itemID++;
this.ngOnInit();
}
}
html-шаблон для app-add-item .
add-todo-item является вторым компонентом. Этот компонент создает представление элемента.
<section class="add-item-section">
<div class="add-item-content">
<input type="text" class="add-textbox add-title" placeholder="Add the best title ever!" [(ngModel)]="itemTitle"/>
<input type="text" class="add-textbox add-description" placeholder="Add a description for the best todo item!" [(ngModel)]="itemDescription"/>
<input type="button" class="add-button" value="+" (click)="addItem()"/>
</div>
</section>
<section class="items-content">
<div class="item-content" *ngFor="let item of items">
<app-todo-item [itemTitle]= "item.title"></app-todo-item>
</div>
</section>
после компонента app-todo-item
import { Component, Input } from '@angular/core';
interface TodoItem {
list: string;
id: number;
title: string;
description?: string;
completed: boolean;
}
@Component({
selector: 'app-todo-item',
templateUrl: './view-item.component.html',
styleUrls: ['./view-item.component.scss'],
})
export class ViewItemComponent {
@Input() itemTitle: string;
items: TodoItem = {
list: 'example',
id: 1,
title: this.itemTitle,
description: 'an example list item for the view model',
completed: false,
};
}
спасибо за ответ.