2017-09-15 2 views
0

J'ai l'élément <md-select> suivant:Angular (4): obtient une valeur pour md-select via une fonction?

<md-select placeholder="{{'COMPANY.TYPE' | translate}}" 
     required 
     id="firmType" 
     ngModel name="type" 
     #type="ngModel" 
     [(ngModel)]="checkType(company)" 
     floatPlaceholder="never" 
     class="full-width"> 
     <md-option *ngFor="let type of companyType" [value]="type.id">{{ type.name }}</md-option> 
</md-select> 

Je veux être en mesure de définir la valeur de l'entrée de sélection via une fonction. C'est évidemment faux, mais je ne peux pas trouver un moyen de corriger cela.

C'est l'erreur que je reçois:

Error: Uncaught (in promise): InvalidCharacterError: Failed to execute 'setAttribute' on 'Element': '[(ngModel)]value' is not a valid attribute name. 
Error: Failed to execute 'setAttribute' on 'Element': '[(ngModel)]value' is not a valid attribute name. 

mis à jour (fonction CheckType):

public checkType(company: Company): number { 

     if (company['regNr'].includes('F', 0)) { 
      console.log('found F'); 
      return 2; 
     } 
     console.log('found L'); 
     return 1; 
     } 

Répondre

1

essayez ceci:

[ngModel]="selectedCompany" 
      (ngModelChange)="onChange($event)" 



<md-select placeholder="{{'COMPANY.TYPE' | translate}}" 
     required 
     id="firmType" 
     ngModel name="type" 
     #type="ngModel" 
     [ngModel]="selectedCompany" 
     (ngModelChange)="onChange($event)" 

     floatPlaceholder="never" 
     class="full-width"> 
     <md-option *ngFor="let type of companyType" [value]="type.id">{{ type.name }}</md-option> 
</md-select> 

Cause:

[ ngModel] = "selectedCompany" // s comment la valeur (d'une manière contraignante) (ngModelChange) = "onChange (événement de $)" // appelez votre func 'sur le changement'

puis dans votre fichier .ts:

public checkType(ev : any): number { // here ev is the value of what you select (so a string) 


     console.log(ev); 
     return 1; 
     } 
+0

Malheureusement, il ne fonctionne pas work :(J'appelle ma fonction comme ceci: '[ngModel] =" selectedCompany " (ngModelChange) =" checkType (company) "' et la fonction n'est pas appelée. –

+0

mmmm pouvez-vous poster votre code ts? –

+0

s'il vous plaît voir la publication initiale mise à jour :) –