有没有一种方法可以根据孩子的状态将css应用于父元素?

时间:2020-06-03 07:37:54

标签: css angular7 parent-child angular-ng-if ng-class

我放在特定的上下文中,这是我的html

<div class='table'>
      <div>
          <div *ngFor='let product of this.market[selectedTab].products | orderBy:"id"' class='itemlist'  [ngClass]="{'active': isAdded}">
            <div class='child'>
              <div class='first'>
                <div>
                  <h2>{{product.name}}</h2>
                  <ul class='subtitle' *ngIf='this.selectedTab === 0'>
                    <li class='itemsdesc' *ngFor='let item of product.items'>
                      <div>
                        <p>{{item.name}}</p>
                        <p>{{item.description}}</p>
                      </div>
                    </li>
                  </ul>
                  <p [innerHTML]='product.description' class='box-desc' *ngIf='product && product.description'></p>
                </div>
              </div>
            </div>
            <div class='child'>
              <div class='fourth'>
                <ul class='p-0 m-0'>
                  <li *ngFor='let item of product.items' class='def-number-input number-input d-flex justify-content-center'>
                    <a (click)='minus(item)' class='minus'[ngClass]="{'disable': isMinor}">-</a>
                    <input class='quantity' type='number' placeholder='0' [(ngModel)]='item.quantity'>
                    <a (click)='plus(item)' class='plus'>+</a>
                  </li>
                </ul>
              </div>
            </div>
            <div class='child'>
              <div class='fifth'>
                <ul class='p-0 m-0'> 
                  <li *ngFor='let item of product.items; let i = index''>                
                    <button class='cart' [ngClass]="{'disable': isUndefined(item.quantity) || item.quantity === 0}" (click)='this.updateCart(item); this.getTotalItems()'><i class='icon-addcart'></i></button>
                  </li>
                </ul>
              </div>
            </div>
          </div>
        </div>
      </div>

将枪支波多黎各枪击案裁定为“购物车”,然后将枪支颜色分类为“项目单”的科比尔·波多黎各劳动党裁定为“主动”。紧急情况下的应急活动清单,潘多拉的坎多·洛·奎基罗埃斯·索尔主动活动项目列表,以及附带的“购物车”,都在“波普尔”购物车上。

正如您在我的html中看到的那样,我尝试使用类变量'iFyreed'对其进行修改,但是它修改了所有的'itemlist',并且我尝试根据该项目更改[ngClass]的条件。但是到那时它会返回未定义的值

也就是说,问题是,有没有一种方法可以检测到item.quantity在具有“ itemlist”类的父组件级别上发生变化以修改其类?

预先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我已经通过在原始数据加载中添加属性“ i☎联系人:false”解决了该问题,然后实现了一种方法,该方法可以查找是否已选择项目ID,并将类设置为true < / p>

  someItemAdded(argproduct) {
    const products = this.market[this.selectedTab].products;
    const product = products.find(p => p.id === argproduct.id);
    const isAdded = product.items.some((i: any) => i.isAdded);
    return isAdded;
  }