angular - 如何在Angular2中动态更改按钮属性

标签 angular typescript

模板,

<div *ngFor="let detail of details"  class = "col-sm-12 nopadding">
  <a  class="button buttonaquacss button-mini button-aqua  
      text-right pull-right" [ngClass]="{activec: color}" 
      (click)='sendrequest(button,detail._id)' 
      #button [ngStyle]="{'background-color':  color}">{{buttonname}}
  </a>   
</div>

我的ts,

buttonname = 'connect';
sendrequest(button, index): void {
    this.http.post('http://localhost:3000/sendrequest', formdata, { headers: headers })
        .subscribe(
        response => {
            if (response.json().status == 'success') {

                buttonname = 'pending';
                this.color = true;
            }

        });
}

问题是,当我单击一个按钮时,所有按钮属性都会更改为待处理,任何人都可以提出建议。

最佳答案

因为只有一个 buttonname 变量,并且所有按钮都绑定(bind)到同一个变量。您需要将它们绑定(bind)到不同的变量。要么为每个按钮使用不同的变量名称,要么使用值数组。

<a (click)='send(button,detail._id)' #button>{{buttonname[detail._id]}}</a> 
buttonname = {'id1': 'connect', 'id2': 'connect'};

sendrequest(button, index): void {
  this.http.post('http://localhost:3000/sendrequest', formdata, { headers: headers })
    .subscribe(
    response => {
        if (response.json().status == 'success') {
            buttonname[index] = 'pending';
            this.color = true;
        }
    });
}

更新

<a (click)='send(button,detail._id)' #button>{{pendingId == detail._id ? 'pending' : 'success'}}</a> 
pendingId;

sendrequest(button, index): void {
  this.pendingId = index;
  this.http.post('http://localhost:3000/sendrequest', formdata, { headers: headers })
    .subscribe(
    response => {
        if (response.json().status == 'success') {
            pendingId = null;
            this.color = true;
        }
    });
}

关于angular - 如何在Angular2中动态更改按钮属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39572969/

相关文章:

angular - 取消订阅不是可观察的函数

typescript - 如何在使用 React Navigation 和 TypeScript 时使用 Jest 和 Enzyme 对静态 navigationOptions 进行单元测试?

javascript - React 新手 => 元素类型无效 : expected a string

Angular 2 嵌入 : Can I pass slot content upward to a parent Component

angular - 错误类型错误 : Converting circular structure to JSON --> starting at object with constructor 'FormGroup'

c# - 如何在客户端检索付款方式?

angular - Ionic3 - 自定义组件中的模板解析错误

javascript - 在 TypeScript 中使用 React.findDOMNode

Angular URL 重定向

angular - 自定义 AWS Amplify cognito 登录/注册组件?