Я пытаюсь передать переменную с EventEmitter между 2-х компонентов, у меня есть эти 2 куска кода в 2-х разных .component файлов (я удалил шаблонный код):данные Проходят через EventEmitter в Angular2
@Component({
selector: 'shopping-list-item',
template: `
<form #f="ngForm">
<div class="input">
<label for="item-name">Name</label>
<input type="text" id="item-name" ngControl="inputname">
</div>
<div class="input">
<label for="item-amt">Amount</label>
<input type="text" id="item-amt" ngControl="inputamount">
</div>
<button class="info" (click)="onEdit()">Edit</button>
</form>
`,
inputs:['item'],
outputs:['editted']
})
export class ShoppingListItemComponent {
item = { name: '', amount: 0 };
editted = new EventEmitter({name: form['inputname'], amount: form['inputamount'] });
onEdit(){
this.editted.emit(this.item);
}
}
@Component({
selector: 'shopping-list',
template: `
<section>
<div class="list">
<ul>
<li *ngFor="#listItem of listItems" (click)="onSelect(listItem)">{{listItem.name}} ({{listItem.amount}})</li>
</ul>
</div>
</section>
<section>
<shopping-list-item [item] (editted)="onEditItem($event)"></shopping-list-item>
</section>
`
})
export class ShoppingListComponent {
onEditItem(item:ListItem){
let myindex = this.listItems.indexOf(item);
this.listItems[myindex].name = +$event.name;
this.listItems[myindex].amount = +$event.amount;
}
}
я получаю эту ошибку:
Error during evaluation of "editted". `$event is not defined`
Если я заменяю +$event.name
со значением, как «тест», что я не получаю ошибки.
Ответ не содержит полное решение. Но, безусловно, поможет вам идти вперед. Почти у меня нет того, что вы искали. Реанимация может быть завершена вами. – micronyks