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

问题描述 投票:0回答:1

我放在特定的上下文中,这是我的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>

segun mi iteraccion cuando pulso el boton con clase'cart'cambio el color del propio boton y deseo ponerle un borde al div con conclase'itemlist',para lo que activo un ngng con connombre'active'。紧急情况下的应急活动清单,潘多拉的危地马拉单身活动,活跃的个人条件清单,以及所有普通的“购物车”类别。

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

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

谢谢您的帮助

css angular7 parent-child angular-ng-if ng-class
1个回答
0
投票
我已经通过在原始数据加载中添加属性'iFyreed:false'来解决它,然后实现了一种方法,在该方法中查找是否选择了该项目的ID,并将该类设置为true

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; }

© www.soinside.com 2019 - 2024. All rights reserved.