2016-07-11 15 views
0

Meine Anforderung ist maxlength zu binden ion-input. Ich habe versucht, Interpolationskonzept zu binden.ionische Bind maxlength dynamisch ionic2

Mein html

<ion-list > 
    <ion-item *ngFor=" let a of arr_label"> 
     <ion-label floating>{{a.lblname}}</ion-label> 
     <ion-input maxlength={{a.maxlent}} [(ngModel)]="a.Val" type="text"></ion-input> 
</ion-item> 

.ts

arr_label:any[]=[]; 
this.arr_label.push({maxlent:10}); 

Gibt es etwas fehle ... jede Hilfe recht spürbar ist.

Antwort

1

Sie auf Attribute auf 3 verschiedene Arten binden können

binden direkt an ihn, wenn es eine native Attribut ist:

<ion-input [maxlength]="a.maxlent" [(ngModel)]="a.Val" type="text"></ion-input> 

binden, um es mit attr Präfix - arbeitet auf individuelle und nativen Attribute:

<ion-input [attr.maxlength]="a.maxlent" [(ngModel)]="a.Val" type="text"></ion-input> 

Oder stellen Sie einfach den Wert auf dem interpolierten String Wert der variablen:

<ion-input maxlength="{{a.maxlent}}" [(ngModel)]="a.Val" type="text"></ion-input> 
+0

Alle drei versucht.Ist nicht .. Erregen Ausnahme für 1 & 3 - Ungültige Integer-Literal beim Analysieren von Null ... für Zweite - keine Ausnahme, keine Bindung .. –

+0

Das bedeutet, dass Ihre "a.maxlen" ist null irgendwann. – rinukkusu

+0

auch wenn ich einen Wert hart statt einem iterierten Wert code..Its zeigt den gleichen Fehler .-- Ungültige Integer-Literal beim Analysieren a.maxlent –

0

Wie Sie in Angular 2 docs sehen Sie können erreichen, was Sie suchen das Attribut verbindlich wie dies durch den Einsatz:

<ion-input type="text" [(ngModel)]="myInput" [attr.maxlength]="maxLength"></ion-input> 

Bitte nehmen Sie sich einen Blick auf den Code in diesem working plunker.

+0

'' Mit text type = "number" it funktioniert nicht. Können Sie mir eine Lösung geben? – shahnilay86