简体   繁体   English

Angular 4-单击更改事件按钮

[英]Angular 4 - changing the event button on click

I have three buttons to add hosts to a list (add, remove and edit), i want that when i add a host, it can be edited, but i have an idea and i can't find a way to do it, i want that when i press the edit icon the host to be edited goes to the text space and the add button changes to an save icon, can some of you guys help me? 我有三个按钮可将主机添加到列表(添加,删除和编辑),我希望在添加主机时可以对其进行编辑,但是我有个主意,我找不到解决方法,我希望当我按下编辑图标时,要编辑的主机进入文本空间,并且添加按钮变为保存图标,你们中的有些人可以帮我吗?

<div class="ui fluid grid">
<div class="ten wide column">
  <form class="ui form">
    <div class="field">
       <label>Nome</label>
       <input type="text">  
    </div>
    <div class="field">
      <label>Descrição</label>
      <textarea></textarea>
    </div>
    <div class="field">
      <label>Formato</label>
      <input type="text">
    </div>
    <div class="field">
      <label>Qtd</label>
      <input type="text">
    </div>
    <div class="field">
      <label>Qtd de classes</label>
      <input type="text">
    </div>
    <button class="ui button" type="submit">Save</button>
  </form>
</div>
<div class="five wide column">

    <form class="ui form">
        <div class="field">
          <label>Host</label>
          <div class="ui action input">
              <input type="text" [(ngModel)]="host">
              <button class="ui basic icon button" *ngIf="editando">
                  <b class="blue save icon"></b>
              </button>
              <button class="ui basic icon button" (click)="addHost(host.value)"  *ngIf="!editando">
                  <i class="green plus icon"></i>
              </button>
              <button class="ui basic icon button" (click)="removeHost(host.value)">
                <i class="red remove icon"></i>
              </button>
          </div>
        </div>
          <div class="field" *ngIf="hosts.length > 0">
          <label>Lista de Hosts</label>
          <div class="ui middle aligned divided list" *ngFor="let hostname of hosts; let i = index">
            <div class="item">
              <div class="right floated content">
                <button class="ui tiny basic icon button" (click)="edit(i)">
                    <i class="blue edit icon"></i>
                </button>
                <button class="ui tiny basic icon button" (click)="removeHost(host.value)">
                  <i class="red remove icon"></i>
                </button>
              </div>
              <div class="content">
                {{ hostname }}
              </div>
            </div>
          </div>
        </div>

      </form>


</div>

https://stackblitz.com/edit/angular-tdghcz?file=index.html https://stackblitz.com/edit/angular-tdghcz?file=index.html

Here is an example of doing it. 这是一个示例。

HTML: HTML:

<div>
    <input *ngIf="editing == 1" type="text" [(ngModel)]="name">
    <span *ngIf="editing !==1 ">{{name}}</span>
    <button (click)="editing === 1 ? save(1) : editing=1">{{editing===1 ?"Save" : "Edit"}}</button>
</div>
<br>
<div>
    <input *ngIf="editing == 2" type="text" [(ngModel)]="lastname">
    <span *ngIf="editing !== 2">{{lastname}}</span>
    <button (click)="editing === 2 ? save(2) : editing=2">{{editing == 2? "Save" : "Edit"}}</button>
</div>

Typescript: 打字稿:

  name = 'John';
  lastname="Smith"
  editing=0;

  save(itemId){
    console.log('Save on %s was called', itemId);
    this.editing=0;
  }

Stackblitz example Stackblitz示例

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM