在 html Angular5 中添加动态文本时出错

Error while adding dynamic text in html Angular5

我在动态添加一些文本时遇到问题,它被替换了。这是我的代码

在 html 文件中

<textarea #messageInput></textarea>
<a href="javascript:void(0)" (click)="sendMessage(messageInput.value)"></a>

在ts文件中

export class className{

 flag :boolean=false;

   newMessage: any;

  sendMessage(msg:any) {

   this.flag=true

   this.newMessage=msg

 }

get flagVar(){
  return this.flag
}

}

在同一组件 html 文件中,我试图显示为

<div *ngIf='flagVar'>
<label  [hidden]="!forwardOption">
      <input type="checkbox" name="test" >  
 </label>
  {{msg}}
</div>

而不是每次都添加它的替换。

有什么帮助吗?

谢谢

如果你想要一个以上的值,你需要使用数组。您不能为此使用单个变量。

这里我取2个变量。 msg 这是一种 two-way 类型的变量,因此当用户键入并保存它时,我们将其值推送到数组中并轻松将其设为空白,而在 HTML 中我使用的是 ngFor 这样您就可以轻松显示数组

的值

你可以试试这个非常简单的例子。

ts

newMessage = [];
msg = '';
sendMessage() {
    this.newMessage.push(this.msg)
    this.msg='';
}

html

<textarea [(ngModel)]="msg"></textarea>
<a href="javascript:void(0)" (click)="sendMessage()">Click Here</a>


<p *ngFor="let m of newMessage">
  {{m}}
</p>

这里你需要一个 *ngFor 来重复你的消息。 您需要更改的代码:

这是在线的DEMO

HTML 文件:

<textarea #messageInput></textarea>
<a href="javascript:void(0)" (click)="sendMessage(messageInput.value); messageInput.value = ''">Add Message</a>

<div *ngIf="mesasgeList.length > 0">
  <div *ngFor="let msg of mesasgeList">
    <label [hidden]="!forwardOption">
      <input type="checkbox" name="test" >  
 </label> {{msg}}
</div>
</div>

TS 文件:

export class AppClass {
flag: boolean = false;
  forwardOption: boolean;
  mesasgeList = [];
  sendMessage(msg: any) {

    this.flag = true;
    this.forwardOption = true;
    this.mesasgeList.push(msg);

  }

  get flagVar() {
    return this.flag
  }
}

希望对你有所帮助。