Próbuję zrobić coś na temat kąta2 i nie jestem w stanie znaleźć czegoś na temat tego zachowania.Dwukierunkowe powiązanie danych we właściwości wejściowej komponentu
Mam aplikacji, która implementuje niestandardowy składnik podobny do tego:
import {Component,Input} from 'angular2/core'
@Component({
selector:'my-comp',
template:`<input type="text" style="text-align:center; [(ngModel)]="inputText"> <p>{{inputText}}</p>`
})
export class MyComp{
@Input() inputText : string;
}
i próbuję zrobić dwukierunkową wiązania z danymi w moim zmiennej inputText
z mojego komponentu tak:
<my-comp [(inputText)]="testString"></my-comp>
Gdzie testString
jest zmienną zdefiniowaną w MyApp.ts
, która zawiera ciąg znaków. Chcę, aby moja zmienna testString
została zmodyfikowana, gdy mój inputText
został zmodyfikowany przez użytkownika.
Oto Plunker z prostym przykładowy kod: https://plnkr.co/edit/zQiCQ3hxSSjCmhWJMJph?p=preview
Czy istnieje sposób, aby to po prostu działa? Czy muszę implementować klasę Angular2 w swoich niestandardowych komponentach i funkcjach przeciążeniowych, aby działał on tak jak ngModel
? Czy muszę koniecznie trzeba utworzyć inputTextChanged
zmienną EventEmitter
typu, które emitują swoje dane, kiedy to zmienił i zrobić coś takiego:
<my-comp [inputText]="testString" (inputTextChanged)="testString = $event;"></my-comp>
Z góry dziękuję.
Tak, musisz utworzyć emiter zdarzeń "inputTextChanged" i wywołać zdarzenie wewnątrz komponentu. Następnie [(inputText)] powinien działać zgodnie z oczekiwaniami. – pixelbits
Uwaga: nie ma czegoś takiego jak dwukierunkowe wiązanie danych w Angular2, ale możesz mieć podobne zachowanie. http://victorsavkin.com/post/110170125256/change-detection-in-angular-2 – jornare
Cóż, zgodnie z Arkuszem Cheular Angular2 z oficjalnej strony internetowej: " \t Konfiguruje dwukierunkowe powiązanie danych. Odpowiednik: ". Więc myślę, że możemy powiedzieć, że jest dwukierunkowe wiązanie danych w Angular2. –