使用Angular和Ionic,如何在单击按钮时将元素添加到DOM [英] Using Angular and Ionic, how can I add elements to the DOM on a button click

查看:35
本文介绍了使用Angular和Ionic,如何在单击按钮时将元素添加到DOM的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Ionic和Angular开发应用程序,希望用户根据需要添加输入字段.我在该主题上看到的所有教程都使用Angular 1.x,而我使用的是Angular 4.

I'm working on an app using Ionic and Angular and would like the user to add input fields as they need. All tutorials I see on this topic are using Angular 1.x and I'm using Angular 4.

这是HTML:

<ion-content>

    <ion-row id="row" ng-repeat= "emailinput of emailinputs">
      <ion-col col-3 id="label">
        Email
      </ion-col>
      <ion-col col-8 id="emailcol">
        <input type="email" id="email" placeholder="jdoe@gmail.com" (keyup.enter)="Send($event.target.value)" [(ngModel)]="emailinput">
      </ion-col>
    </ion-row>

  <div padding>
    <button (click) = "addnewemail(emailinput)" id="register" ion-button full color="nudgetprim" block>Add</button>
    <button (click) = "sendinvite(emailVal)" id="register" ion-button full color="nudgetprim" block>Invite</button>
  </div>

</ion-content>

该按钮的打字稿是:

addnewemail(emailinput) {
    console.log(emailinput)
    var emailinputs = [];

    var newItem = emailinputs.length+1;
    emailinputs.push({'id' : 'row' + newItem, 'name' : 'row' + newItem});
}

推荐答案

如果我正确解释了您想要的内容,它应该是这样.除非您在其他地方使用了 id name 属性,否则它们就不需要存在.

This is what it should look like if I am interpreting what you want correctly. Your id and name attributes of an emailinput don't need to be there unless you have some use for them somewhere else.

<ion-content>

  <ion-item id="row" *ngFor="let emailinput of emailinputs ; let i = index">
    <ion-label>
      Email
    </ion-label>
    <ion-input type="email" id="email{{i}}" placeholder="jdoe@gmail.com" (keyup.enter)="Send($event.target.value)" [(ngModel)]="emailinput.email"></ion-input>
  </ion-item>

  <div padding>
    <button (click) = "addnewemail()" id="register" ion-button full color="nudgetprim" block>Add</button>
    <button (click) = "sendinvite(emailVal)" id="sendinvite" ion-button full color="nudgetprim" block>Invite</button>
  </div>

</ion-content>


emailinputs = [{'id' : 'row0', 'name' : 'row0', 'email': ''}];

...

constructor(...

...

addnewemail() {
    let newItem = this.emailinputs.length;
    this.emailinputs.push({'id' : 'row' + newItem, 'name' : 'row' + newItem, 'email': ''});
}

这篇关于使用Angular和Ionic,如何在单击按钮时将元素添加到DOM的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆