Angular 2 bileşenleri ve onların kompozisyonları ile oynadım ve yerel olay bubbling ve @Output ad çarpışma neden olduğu çirkin davranış, koştu.@Output olay adları için öneriler (yerel olay adı çarpışmasını önlemek için) nedir?
ben teslim adıyla kendi olay yayıcısı sahiptir app-orta bileşeninde bu formu bileşenini kullanabilirsiniz
<form (ngSubmit)="submitButtonClicked($event)">
<input type="text"/>
<button type="submit">Send</button>
</form>
şablona
yılında formu ile bileşen app-form var.@Component({
selector: 'app-middle',
templateUrl: './middle.component.html',
styleUrls: ['./middle.component.css']
})
export class MiddleComponent implements OnInit {
@Output() submit = new EventEmitter<string>();
constructor() { }
emitSubmitEvent() {
this.submit.emit("some data");
}
}
şablonu: şablonla
<div>
<app-form></app-form>
</div>
Ve uygulama bileşeni: Artık
<app-middle (submit)="submitListener($event)"></app-middle>
, submitListener zaman (denir app-ortasında teslim
- adı verilecek aranan davranış) form gönderildiğinde üstüne doğal olay kabarcık ("parazitik" davranışı) herhalde
, "parazitik" davranış DOM olaya dayanır, çünkü
aynı sorunu varsa: Bu sorunun içine https://bitbucket.org/winsik/submit-event-issue/src
Çalıştırmak mü? @Outputs adınızı nasıl adlandırıyorsunuz?
Wha tI genellikle, @Output 's (onXxxxx) için özel etkinliklerimi adlandırır. OnSubmit, onClick, onWhatever gibi. – KwintenP
bu ani tarzı kılavuzuna karşı https://angular.io/styleguide#!#05-16 – milanlempera
Hmmm bunu kaçırdı. Bunu değiştirmeye başlayacağımı düşünmüyorum. Styleguide bir kılavuzdur ve tüm yerel etkinlikleri (kendim dahil) bilmeyen insanlar için pragmatik bir çözüm buluyorum. – KwintenP