2016-06-06 13 views
1

ich diese Komponente schrieb:Angular2 wie Bezug auf Pass für ngModel Bindung

@Component({ 
    selector: 'formfield', 
    template: ` 
     <div> 
      <label>{{label}}</label> 
      <div> 
       <input class="form-control" type="text" [(ngModel)]="model"> 
      </div> 
     </div> 
` 
}) 
export class Formfield { 
    @Input() label: string; 
    @Input() model: string; 
} 

Ich benutze es hier:

<formfield label="something" model="somevalue"></formfield> 

Nicht überraschend das Eingabefeld zeigt die Zeichenfolge „somevalue“. Wie kann ich den Wert der Variablen somevalue beibehalten?

+0

Mögliche Duplikat [Angular 2 ngModel in Kinder Komponenten-Updates übergeordnete Komponente Eigenschaft] (http://stackoverflow.com/questions/35327929/angular-2-ngmodel-in-child -component-updates-parent-component-property) –

+0

ja .................. – user3725805

+0

http://stackoverflow.com/questions/35327929/angular-2-nngmodel- in-kind-component-updates-parent-komponente-property – user3725805

Antwort

0

Sie müssen die folgenden verwenden:

<formfield label="something" [model]="someprop"></formfield> 

wo someprop ist eine Eigenschaft der Komponente, die die formfield Komponente verwendet.

Zum Beispiel:

@Component({ 
    (...) 
}) 
export class SomeComponent { 
    someprop:string = 'some value'; 
} 
+0

Dies funktioniert nur auf halbem Weg. Eine Änderung im Eingabefeld wirkt sich nur auf den Wert des Modells aus, nicht aber auf den Wert von someprop. – user3725805

+0

Modell ist nur eine @ Input-Eigenschaft, würde ich etwas wie '@InputOutput() -Modell benötigen – user3725805

Verwandte Themen