2016-07-07 117 views
4

要设置textarea的最大字母数,我们也做到这一点通过写 <textarea maxLength="50"></textarea>Angular2最大长度为textarea的可变

,但是,我可以做类似下面?有什么方法吗?

import { Component } from '@angular/core'; 

@Component({ 
    moduleId: module.id, 
    selector: 'app-create-offer-page', 
    template: ` 
    <textarea maxLength="textareaLength"></textarea> 
    ` 
}) 
export class CreateOfferPageComponent { 
    textareaLength: number = 50; 
} 

我在问,因为这是行不通的。

回答

10

您需要[]的角度把它解释为结合

[maxLength]="textareaLength" 

这应该对本地验证工作。 Angular2验证器当前不支持动态值。

+0

谢谢。它的作用像一个魅力,但我注意到,attr.maxLength也适用。添加attr是否有一些好的做法?属性之前? – elzoy

+2

'maxLength'是一个本地属性,因此可以直接用'[maxLength]'绑定。如果你想设置一个像data-id这样的自定义属性,你可以使用'[attr.data-id]'绑定。最后它对这些本地属性没有影响。 – rinukkusu

+1

我明白了!感谢您的帮助。祝你今天愉快。 – elzoy

4

肯定和它很容易 - 只需使用属性,像这样绑定:

<textarea [attr.maxLength]="textareaLength"></textarea> 
+1

非常感谢。我很遗憾,我不能接受两个答案,但你迟到了9秒。但当然,指向你:) – elzoy

1

扩大对@rinukkusu提供的答案一点点,你甚至可以让属性可选加入了三元运算符,如所以:

<textarea [attr.maxLength]="textareaLength > 0 ? textareaLength : null"></textarea> 

null值将删除元件,这是我需要完全的属性。