2016-07-07 100 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值將刪除元件,這是我需要完全的屬性。