2017-02-02 39 views
6

Verimli bir Açısal uygulamasına sahibim. Geçiş durumunda geçtiğim bir geçiş bileşenim var. Sorun şu ki, iki yönlü veri bağlama, bir nesne olarak geçiş boolean'ını geçmedikçe işe yaramaz. Bunu bir EventEmitter kullanmadan veya değişkeni nesnesine geçirmeden çalışmak için bir yolu var mı. Bu, yeniden kullanılabilir bir bileşen olmaktır ve uygulama, ağır bir veri ile yürütülür, böylece değeri bir nesne olarak değil, bir seçenek olarak iletir. KodumAngular2 Bileşen @ Giriş iki yönlü ciltleme

toggle.html

<input type="checkbox" [(ngModel)]="toggled" [id]="toggleId" name="check"/> 

toggle.component.ts [(toggled)]="..." sizi çalışması için

import { Component, Input, EventEmitter, Output } from '@angular/core'; 

@Component({ 
    moduleId: module.id, 
    selector: 'toggle-switch', 
    templateUrl: 'toggle-switch.component.html', 
    styleUrls: ['toggle-switch.component.css'] 
}) 

export class ToggleSwitchComponent { 

    @Input() toggleId: string; 
    @Input() toggled: boolean; 

} 

parent.component.html

<toggle-switch toggleId="toggle-1" [(toggled)]="nongenericObject.toggled"></toggle-switch> 
+0

http://stackoverflow.com/documentation/angular2/8943/angular2-input-output#t=201702021650455443161 –

cevap

15

.... olduğunu

@Input() toggled: boolean; 
    @Output() toggledChange: EventEmitter<boolean> = new EventEmitter<boolean>(); 

    changeValue() { 
    this.toggled = !toggled; 
    this.toggledChange.emit(this.toggled); 
    } 

Ayrıca bkz Two-way binding

+0

O bir EventEmitter kullanarak veya değişken geçmeden" o fena halde hayal kırıklığına olacak bir nesne olarak "karşılanamaz. Temel sözdizimini okumadığı gibi, sözdizimi rehberine giden bir bağlantı. – silentsod

+0

Hatta "EventEmitter" öğesini aldı. Beklediğiniz kadar kötü olmayabilir ;-) –

+0

Bu aslında benim için çalıştı. Asıl olarak, ana bileşendeki bir işleve bağlı olan olay emitörünü kullanmak için kurmuştum. Bu çok yeniden kullanılabilir değildi bu yüzden neden bunu yapmak için bir yol olup olmadığını görmek için sordum. Bu cevabın herhangi bir nedenden dolayı değişmiş ebeveyn değişkeni değişkeni –

İlgili konular