AngularJS中关于ng-class和*ngIf指令

在工作中写ionic项目时,因为用的ionic3,与之相搭配的是Angular4,之前不会,就大致看看,写项目的时候遇到再查找。

在写到etf指数基金的时候,有的可以立即抢购,有的是封闭期。想实现这种效果,如下图:



我就用到了ng-class,两个按钮需要不同的样式,

<ion-col col-5 text-right>
          <button ion-button (click)="onEvent('onPurchase', data)"
                  [ngClass]="{true:'hactive',false:'hdisable'}[data.isActive]" round>
            {{data.etfbtn}}
          </button>
        </ion-col>


我想在父页面传值的时候,传过来一个isActive参数,值为true或者false,
但是后台给的接口才不会给你这个数据,所以得直接预判,用*ngIf:


<ion-col col-5 text-right>
  <button ion-button (click)="onEvent('onPurchase', data)" class="hactive" *ngIf="data.etfbtn=='立即抢购'" round>
      {{data.etfbtn}}
  </button>
  <button ion-button (click)="onEvent('onPurchase', data)" class="hdisable" *ngIf="data.etfbtn=='封闭期'"  round>
      {{data.etfbtn}}
  </button>
</ion-col>

以上两段代码都是相同的效果,但是ng-class通过对象数组只有true和false两种状态,有些局限,*ngIf可以写好多种,
但是相同代码要重复写,不好看,代码冗余;我在网上也查到了其他做法,可以试试;
第三种:通过key/value


<div ng-controller="firstController">
     <div ng-class="{'change1':select,'change2':choice,'change3':lala}">{{data.item}}</div>
</div>
          <script>
              var app=angular.module("myModule",[]);
              app.controller('firstController',function($scope){
                  $scope.select=true;
                  $scope.lala=true;
              })
          </script>
哈哈,每天进步一点点,^_^

链接是http://www.jb51.net/article/92775.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值