Angular 2 Material Input动态更改占位符

时间:2017-06-01 12:36:55

标签: javascript angular typescript angular-material placeholder

我想动态更改输入占位符的文本。 console.log已经提供了更新的字符串,但界面没有更新,因此保留了旧的占位符。 如何让界面识别更改?

document.getElementById(this.implicKey).setAttribute('placeholder', options[i].implication);

console.log(document.getElementById(this.implicKey).getAttribute('placeholder'));

3 个答案:

答案 0 :(得分:7)

您可以像这样动态更改输入占位符

<md-input-container class="demo-full-width">
                <input mdInput [(ngModel)]="firstname" placeholder="{{somePlaceholder}}" name="firstname" required>
                <md-error>This field is required</md-error>
            </md-input-container>

component.ts

somePlaceholder : string = "new value";

现在您可以在类中的任何位置更改somePlaceholder值。

答案 1 :(得分:2)

我们可以使用属性绑定来做到这一点。

在HTML中,使用方括号:

<input formControlName="events" type="text" [placeholder]="newPlaceHolder">

在您的打字稿文件中,定义属性:

newPlaceHolder: string = "original place holder";

然后,更改属性值:

newPlaceHolder= "my new place holder";

答案 2 :(得分:0)

这对我很有效:

(我用它来显示mat-autocomplete表单字段上的动态错误)

在您的HTML上:

 [placeholder]="isPlaceHolderShowError('myFormControlName')"

在您的TS上:

    isPlaceHolderShowError(myFormControlName) {
    if (this.form.controls[myFormControlName].invalid && this.form.controls[myFormControlName].touched) {
      return 'this is my error text'
    }
    return 'this is the initial placehloder'
  }