首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何为父元素添加类购买单击子按钮Angular 8

在Angular 8中,可以通过以下步骤为父元素添加类购买并点击子按钮:

  1. 首先,在父组件的HTML模板中,给父元素添加一个类名,例如:
代码语言:txt
复制
<div class="parent-element">
  <!-- 子组件按钮 -->
  <app-child-button (click)="buy()"></app-child-button>
</div>
  1. 在父组件的CSS样式文件中,定义该类名的样式,例如:
代码语言:txt
复制
.parent-element {
  /* 添加样式 */
  background-color: #f2f2f2;
  border: 1px solid #ccc;
  padding: 10px;
}
  1. 在父组件的TypeScript文件中,定义一个名为buy()的方法,用于处理点击子按钮后的逻辑,例如:
代码语言:txt
复制
import { Component } from '@angular/core';

@Component({
  selector: 'app-parent',
  templateUrl: './parent.component.html',
  styleUrls: ['./parent.component.css']
})
export class ParentComponent {
  buy() {
    // 处理购买逻辑
    console.log('购买按钮被点击');
    // 可以在这里添加对父元素类的操作,例如:
    // const parentElement = document.querySelector('.parent-element');
    // parentElement.classList.add('purchased');
  }
}
  1. 如果需要在点击子按钮后对父元素进行类的操作,可以使用ElementRef来获取父元素的引用,并使用Renderer2来添加类。在父组件的TypeScript文件中,进行如下修改:
代码语言:txt
复制
import { Component, ElementRef, Renderer2 } from '@angular/core';

@Component({
  selector: 'app-parent',
  templateUrl: './parent.component.html',
  styleUrls: ['./parent.component.css']
})
export class ParentComponent {
  constructor(private elementRef: ElementRef, private renderer: Renderer2) {}

  buy() {
    // 处理购买逻辑
    console.log('购买按钮被点击');
    // 添加对父元素类的操作
    const parentElement = this.elementRef.nativeElement.querySelector('.parent-element');
    this.renderer.addClass(parentElement, 'purchased');
  }
}
  1. 在父组件的CSS样式文件中,定义purchased类的样式,例如:
代码语言:txt
复制
.parent-element.purchased {
  /* 添加购买后的样式 */
  background-color: #c8e6c9;
  border-color: #4caf50;
}

这样,当点击子按钮时,父元素会添加purchased类,从而改变其样式,实现购买后的效果。

请注意,以上答案中没有提及具体的腾讯云产品和产品介绍链接地址,因为在这个问题中没有明确要求提供相关信息。如需了解腾讯云的相关产品和服务,可以访问腾讯云官方网站进行查询。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

AngularDart 4.0 高级-路由概述 顶

并且路由器在浏览器的历史记录中记录活动,所以后退和前进按钮也起作用。 设置概述 添加angular_router 路由器功能位于angular_router库中,该库自带软件包。...但是大多数情况下,由于某些用户操作(点击锚标签)迫使您导航。...当关联的路由链接变为活动状态时,路由将router-link-active CSS添加元素。如上所示,您可以在AppComponent的@Component注解中将该样式与模板一起定义。...RouterLink 将可点击HTML元素绑定到路由的指令。 单击具有绑定到链接参数列表的routerLink指令的元素会触发导航。...与英雄细节不同,当您键入更新时,危机细节更改是暂时的,直到您通过按下“Save”或“Cancel”按钮保存或放弃它们。 这两个按钮都回到危机中心及其危机列表。 不要单击任一按钮

6.1K20

纯前端控件集 WijmoJS 2018V2发布,在React、Vue和Angular中更易用

安装后,它会在每个Angular 框架下的WijmoJS组件上方添加“Wijmo Designer ...”操作。单击操作按钮后,它将打开一个设计界面,用于自定义该特定组件。...开发人员可以实时更改属性和绑定事件,并将所做更改保存回 Angular应用程序中。 要在VSCode中安装此扩展,请单击VS Marketplace上Designer设置中的“安装”按钮。...例如,WjcFlexGrid组件扩展了FlexGrid控件。这也意味着当WijmoJS 用于“Web组件模式”时,基础WijmoJS 控件扩展了HTML 元素。...与顶级组件互补的组件,定义FlexGrid列的wjc-flex-grid-column组件,作为它们所代表的WijmoJS 的包装器。...组件直接从HTMLElementclass继承,底层 WijmoJS 实例可通过组件的特殊控件属性访问。 可以使用组件元素上的属性定义 WijmoJS 类属性。

7K20

Angular企业级开发(7)-MVC之控制器

3.控制器的作用 3.1 在控制器中初始化模型(添加属性) 创建控制器并将它附加到DOM元素之后,AngularJS会创建一个作用域。作用域保存着对应控制器的数据模型。...4.1 视图中控制器并列 各个控制器从附加DOM元素节点开始,到节点对应闭合标签结束的地方创建了一个控制域,单个控制器里面的$scope对象只能访问和调用该控制器范围内的属性和方法。...控制器并列Demo 4.2 视图中控制器嵌套 默认情况下,AngularJS在当前作用域中无法找到某个属性,就会在级作用域中进行查找。即级控制器会继承级控制器中的对象。...但是级作用域和级作用域中有相同的属性,级使用自己的作用域。这个时候级作用域要访问级作用域的属性可以通过$parent。类似JavaScript本身的原型链方式。...6.参考内容 Controller官方介绍 angularjs 嵌套控制器,控制器访问控制器 angular controller as syntax vs scope 用$scope还是用controller

1.9K50

如何使用WijmoJS 纯前端设计器,快速生成 Angular 应用

对于具有集合的控件(例如网格列),设计器允许您添加,删除和修改单个成员。 在“属性”窗格中找到columns属性,然后单击属性编辑器右侧的“显示项目”按钮以显示Angular标记中定义的八个列。...接下来,单击图例属性的齿轮图标,并将其位置设置更改为“底部”。 像以前一样单击后退按钮返回FlexChart设置。 通过将其标题属性设置为Most Active,为图表添加标题。...例如,您可以通过添加适当类型的新系列元素,轻松地将趋势线添加到图表中。 在“属性”窗格中向下滚动,找到系列属性,然后单击“显示项目”按钮将其展开。...将鼠标悬停在括号内的文本上,然后单击出现的链接。 现在,“属性”窗格显示特定于TrendLine的属性。...visibility]="'Plot'"> 在我们的示例中,生成的标记包含表示Y轴,图表图例,三个数据系列和趋势线的元素

5.4K40

AngularDart4.0 指南- 表单 顶

您在底部添加了一个提交按钮,其中有一些用于样式。 你还没有使用Angular。 没有绑定或额外的指令,只是布局。...添加一个清除按钮 将clear()方法添加到组件中:lib/src/hero_form_component.dart (clear) void clear() { model.name = '';...如果没有Angular的帮助,你需要做什么才能将按钮的启用/禁用状态连接到表单的有效性? 对你来说,这很简单: 在(增强的)表单元素上定义一个模板引用变量。 在多处的按钮中引用该变量。...该视图包含一个编辑按钮,其单击事件绑定将清除提交的标志。 当您单击编辑按钮时,该表消失,并且可编辑的表单重新出现。 概要 Angular表单为数据修改,验证等提供支持。...模板引用变量,heroForm和name。 双向数据绑定([(ngModel)])。 用于验证和表单元素更改跟踪的NgControl 指令。

17.5K30

AngularDart 4.0 高级-生命周期钩子 顶

它们遵循一种常见的模式:组件作为一个组件的一个或多个生命周期钩子方法的测试装备。 以下是每个练习的简要说明: 组件 描述 Peek-a-boo 演示每个生命周期的钩子。...peek-a-boo存在以显示Angular如何按预期顺序调用钩子。 此快照反映用户单击“创建...”按钮然后单击“销毁...”按钮后日志的状态。 ?...添加一个英雄会产生一个新的英雄。 间谍的ngOnInit记录该事件。 重置按钮清除英雄列表。 Angular从DOM中移除所有英雄元素并同时销毁他们的间谍指令。...这一次,它不是在模板中包含视图,而是从AfterContentComponent的项导入内容。 这是父母的模板。...关键的区别在于组件 AfterView钩子涉及ViewChildren,组件的元素标签出现在组件的模板中。

6.2K10

如何使用纯前端控件集 WijmoJS 中的可视化在线设计器

用户可通过打开工具箱并将InputDateTime控件添加到设计图面,单击“编辑”工具栏上的“上移”按钮以交换两个控件的位置。...WijmoJS 在线Web设计器目前仅支持生成纯Java代码,并不依赖于任何特定框架,jQuery或Angular。...最后,最后一行为日历的valueChanged事件添加了一个Demo处理程序。 要返回可视化设计器,请单击页面左侧的“设计视图”按钮(“保存”按钮下方)。...例如,您可以通过添加适当类型的新系列元素,轻松地将趋势线添加到图表。 在我们这样做之前,让我们看看设计师生成的默认系列集合。...单击后退按钮返回FlexChart设置,然后像以前一样展开系列属性。 现在单击添加项目”链接以将新图表系列添加到集合的末尾。

5.9K20

2020年Vue面试题汇总

Vue可能有些方面是不如React,不如Angular,但它是渐进的,没有强主张,你可以在原有大系统的上面,把一两个组件改用它实现,当jQuery用;也可以整个用它全家桶开发,当Angular用;还可以用它的视图...:A 鼠标滚轮单击触发 Click默认是鼠标左键单击 d、其他修饰符 .lazy 在默认情况下,v-model...$parent.event来调用组件的方法。 第二种方法是在组件里用$emit向组件触发一个事件,组件监听这个事件就行了。...第三种是组件把方法传入组件中,在组件里直接调用这个方法。 2.vue中组件调用组件的方法 组件利用ref属性操作组件方法。...(3)组件给组件传值: 一、使用ref属性 1.组件调用组件时绑定属性ref 2.在组件中使用this.refs.parent

2.8K20

深入JavaScript之BOM、DOM和事件

对象都可以被认为是一个节点 方法 CRUD dom树: appendChild():向节点的节点列表的结尾添加新的节点。...replaceChild():用新节点替换一个节点。 属性 parentNode 返回节点的节点。...HTML DOM 标签体的设置和获取:innerHTML 使用html元素对象的属性 控制元素样式 使用元素的style属性来设置 : //修改样式方式1 div1.style.border =...单击,双击,键盘按下了,鼠标移动了 事件源:组件。按钮 文本输入框… 监听器:代码。 注册监听:将事件,事件源,监听器结合在一起。 当事件源上发生了某个事件,则触发执行某个监听器代码。...常见的事件 点击事件 onclick:单击事件 ondblclick:双击事件 焦点事件 onblur:失去焦点 onfocus:元素获得焦点。 加载事件 onload:一张页面或一幅图像完成加载。

2.9K30

JQuery

xx,级执行了命令 find选中子集执行了命令 下面的选择器很重要 .parent()选择元素元素 可以先用一个this,然后找到这个元素级。...***添加删除 .addClass()添加 .removeClass()删除 删除了class=“xx”中的名xx,而不会删除class。删除完之后是class。...class中可以添加多个。 class=“aa bb cc”如果括号里面不填名,会删除所有名,如果填了名,就删除指定的名。 toggleClass() <!...()鼠标离开(离开元素不触发) 上面的这些鼠标移入和离开,触发和不触发指的是不再次触发级。...验证两组不一样的时候,鼠标先进入级,再进入级,然后没有再次触发,验证成功。如果是直接进入级的话,因为级和级是一体的,会触发。 <!

7.7K20

angular面试题及答案_angular面试

指令分类 组件:用于构建UI组件,继承于Directive 属性指令:用于改变组件的外观或行为 ngClass ngStyle 结构指令:用于动态添加或删除DOM元素来改变DOM布局 ngIf ngFor...父子组件之间的数据传递 @Input 组件向组件传递数据和传递方法(组件中使用) @output 组件传值给组件 (事件传递的方式)(组件中使用) //组件中使用事件发射器 @output...,主动获取组件的数据和方法(组件中使用) 4....ngOnInit可以用来初始化组件之间通信的,异步请求等 参考:https://www.jianshu.com/p/af1d8f597b29 25....ViewChild 用来从模板视图中获取匹配的元素组件的 ngAfterContentInit 生命周期钩子中才能成功获取通过 ContentChild 查询的元素组件的

11K120

笔记35-JavaScript高级

* 方法: * CRUD dom树: * appendChild():向节点的节点列表的结尾添加新的节点。...* replaceChild():用新节点替换一个节点。 * 属性: * parentNode 返回节点的节点。 * HTML DOM 1....使用元素的style属性来设置 : //修改样式方式1 div1.style.border = "1px solid red"; div1.style.width...提前定义好选择器的样式,通过元素的className属性来设置其class属性值。 事件监听机制: * 概念:某些组件被执行了某些操作后,触发某些代码的执行。 * 事件:某些操作。...单击,双击,键盘按下了,鼠标移动了 * 事件源:组件。按钮 文本输入框... * 监听器:代码。 * 注册监听:将事件,事件源,监听器结合在一起。

1.3K30

前端基础-JavaScript(二)

* 方法: * CRUD dom树: * appendChild():向节点的节点列表的结尾添加新的节点。...* replaceChild():用新节点替换一个节点。 * 属性: * parentNode 返回节点的节点。 * HTML DOM 1....使用元素的style属性来设置 : //修改样式方式1 div1.style.border = "1px solid red"; div1.style.width...提前定义好选择器的样式,通过元素的className属性来设置其class属性值。 事件监听机制: * 概念:某些组件被执行了某些操作后,触发某些代码的执行。 * 事件:某些操作。...单击,双击,键盘按下了,鼠标移动了 * 事件源:组件。按钮 文本输入框... * 监听器:代码。 * 注册监听:将事件,事件源,监听器结合在一起。

1.5K10

前端系列第2集-如何让事件先冒泡后获取?

例如,如果有一个包含多个按钮的列表,并且希望在单击每个按钮时执行相同的操作,可以将单击事件监听器添加到列表元素上,并使用事件对象来获取单击按钮。...    }   }); 在这个例子中,我们使用事件委托将单击事件监听器添加到列表元素上,并在事件处理程序中检查被单击元素是否为按钮。...myList 元素上,并使用 if 语句检查被单击元素是否为按钮。...如果想要事件先冒泡后获取,可以使用以下两种方法之一: 使用事件委托(Event Delegation):将单个事件监听器添加元素上,以处理其元素上的事件。...由于事件冒泡会在整个文档中传播,因此在元素添加事件监听器可以确保事件先冒泡后获取。 使用 setTimeout():将事件处理程序延迟一小段时间再执行,以确保事件有时间传播到元素

18720

分层 Blazor 组件

作为加入单页应用程序 (SPA) 队伍的最新框架,Blazor 有机会在其他框架( Angular 和 React)的最佳特性基础之上构建而成。...通常情况下,触发器是使用一对数据切换属性和数据目标属性进行修饰的按钮元素。不过,模式也可以通过 JavaScript 触发。Toggle 组件仅用作触发器标记的容器。...此标记相当简洁,并在模板化标记区块周围添加 DIV 元素。图 2 中的 modal.cshtml 文件声明 ChildContent 模板属性,用于收集(很明显)任何内容。...按钮的内容是通过模板化属性 ChildContent 进行捕获。请注意,在 Blazor 中,模板属性 ChildContent 自动捕获元素的整个子标记。...在 Bootstrap 行话中,对话框切换按钮的数据目标属性标识,要在用户单击切换按钮时弹出的 DIV 的 ID。

8.3K10
领券