2016-07-11 2 views
0

Моим требованием является связывать maxlength с ion-input. Я попытался использовать концепцию интерполяции для привязки.ионный Bind maxlength динамически ионный2

Мой 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}); 

Есть ли что-то я не хватает ... любая помощь довольно значительна.

ответ

1

Вы можете привязать к атрибутам в 3-х различных способах

Bind непосредственно к нему, если это родной атрибут:

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

Привязать к нему с attr префиксом - работает на пользовательском и родные атрибутах:

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

Или просто установить его значение на интерполированное значение строки переменной:

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

Пробовал все три. Он не работает. Исключение для 1 и 3 - Недопустимый целочисленный литерал при разборе нулевого ... для второго - исключение, отсутствие привязки .. –

+0

Это означает, что ваш 'a.maxlent' равен нулю в какой-то момент. – rinukkusu

+0

, даже если я жестко кодирую любое значение, а не итерированное значение. Он показывает ту же ошибку. - Недопустимый целочисленный литерал при разборе a.maxlent –

0

Как вы можете видеть в Angular 2 docs вы можете добиться того, что вы ищете с помощью атрибута связывания, как это:

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

Пожалуйста, обратите внимание на код в этом working plunker.

+0

'<Ионный тип ввода =" число "значение =" "[(ngModel)] =" Сумма "maxlength =" 10 ">' С текстом type = "number" it не работает. Можете ли вы дать мне решение? – shahnilay86

Смежные вопросы