如何在angular2中动态更改按钮颜色

时间:2016-08-12 13:02:18

标签: angular typescript

我正在尝试动态更改我的按钮颜色,但没有实现可以有人建议帮助

   <a  class="button buttonaquacss button-mini button-aqua  text-right pull-right"  (click)='send(button,detail.profile_id)' #button  [ngStyle]="{'background-color':  color}"><span><i class="icon-plus-sign"></i>{{detail.innerHTML}}</span></a>   




  if (detail.connection_status == '') {
                    detail.innerHTML = "connect";
                    this.color = "red";
                }




send(button, index): void {

    var str = localStorage.getItem('social');
    var loc = JSON.parse(str);
    var id = loc.profile_id;
    var formdata = { recieved_id: index, sent_id: id }

    this.color = 'blue';
    var headers = new Headers();

    headers.append('Content-Type', 'application/x-www-form-urlencoded')
    this.http.post('http://localhost/a2server/index.php/requests/sendrequest/', formdata, { headers: headers })
        .subscribe(
        response => {
            if (response.json().error_code == 0) {
                button.innerHTML = "Pending";
                button.disabled = true;
                this.color = "#127bdc";

            }
            else {
                button.innerHTML = "Unable to send request";
            }
        });


}

我正在尝试动态更改我的按钮颜色,但没有实现可以有人建议帮助

3 个答案:

答案 0 :(得分:4)

您可以利用ngStyle指令:

<a  class="button buttonaquacss button-mini button-aqua  text-right pull-right" 
    [ngStyle]="{'background-color':  color}">
  (...)
</a>

答案 1 :(得分:0)

一个简单的解决方案是使用 ngStyle https://docs.angularjs.org/api/ng/directive/ngStyle)使用这样的指令

ng-style="{color: myColor}"

指向您的控制器。

答案 2 :(得分:0)

解决此问题的另一种方法是使用[class.newColor]="errorThrown"来覆盖颜色的条件类。这符合将逻辑与样式分离的原则。