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

parent *ngfor有一个带有图库的子ngfor -点击图像会影响所有其他的子ngfor-如何只影响被点击的那个

parent *ngfor是Angular框架中的一个指令,用于循环渲染父级元素,并在每个父级元素中应用子级指令或组件。而带有图库的子ngfor表示在每个父级元素中使用ngfor指令循环渲染子级图库元素。

当点击一个图像时,想要只影响被点击的那个图像,可以通过以下步骤实现:

  1. 在父级组件中定义一个变量(例如selectedImage)来跟踪当前被点击的图像。
  2. 在每个子级图像元素上绑定一个点击事件,并在点击事件处理程序中更新selectedImage的值。
  3. 使用ngClass指令或其他相关指令来为被选中的图像应用不同的样式或逻辑。

下面是一个示例代码,演示如何实现这个功能:

在父级组件的模板中:

代码语言:txt
复制
<div *ngFor="let parentItem of parentItems">
  <div *ngFor="let image of parentItem.images" (click)="selectImage(image)">
    <img [src]="image.src" [ngClass]="{'selected': image === selectedImage}">
  </div>
</div>

在父级组件的代码中:

代码语言:txt
复制
selectedImage: any;

selectImage(image: any) {
  this.selectedImage = image;
}

在上述示例中,当点击子级图像元素时,会触发selectImage方法,并将被点击的图像对象传递给该方法。然后,通过ngClass指令,根据当前图像是否与selectedImage相等来应用不同的样式。

这是一个简单的实现方式,你可以根据实际需求进行修改和扩展。

另外,腾讯云提供了云计算相关的产品和服务,例如云服务器、云数据库、云存储等,可以根据具体需求选择合适的产品。你可以访问腾讯云官网了解更多相关产品的详细信息:腾讯云

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

相关·内容

AngularDart4.0 英雄之旅-教程-04明细 顶

它表示元素及其子元素构成一个主模板。 ngFor指令遍历组件的英雄列表并为该列表中的每个英雄呈现该模板的一个实例。...当用户点击英雄的名字时,所选择的英雄被初始化。...在上面添加的样式元数据中,有一个名为selected的自定义CSS类。 为了让选定的英雄更清晰可见,当用户点击英雄名字时,你将把这个选定的class应用到。...您将Hero类移到lib / src下的自己的文件中。 你增加了选择英雄和显示英雄的细节的能力。 您了解了如何在组件模板中使用核心指令ngIf和ngFor。...一个应用程序不应该是一个单一的组件。 在下一页中,您将将应用程序拆分为子组件,并使它们一起工作。

3K30

Angular2 之 结构型指令几个概念

Angular 有一个强力的模板引擎,它能让你轻松维护元素的DOM树结构。 Angular指令可分为三种 组件 属性型指令 结构型指令 组件 组件其实就是一个带模板的指令。...它仍然附加子啊它所属于的DOM元素上,它仍然在监听事件。angular会继续检查哪些能影响数据绑定的变更。组件原本要做的哪些事情仍然在进行!它还是占用着那么多的资源。...另外一方面,重新显示这个组件会很快。 组件以前的状态被保留着,并随时可以显示。组件不用重新初始化,当然,该操作付出代价比较大!... 移除元素组件 利 把ngIf设置为false,将会影响到组件的资源消耗。angular会从DOM中移除该元素,停止相关组件的变更检测,把它从DOM事件中移除,并且销毁组件。...* 我们现在先把myUnless属性定义成一个“只写”属性。 * 属性值发生了变化,可以展示出来。

3K20
  • Angular快速学习笔记(3) -- 组件与模板

    小结 带有双花括号的插值表达式 (interpolation) 来显示一个组件属性 用 ngFor 显示数组 用一个 TypeScript 类来为你的组件描述模型数据并显示模型的属性 用 ngIf...—— 通常是正在绑定事件的那个组件实例。...当它通过属性绑定的形式被绑定时,值会“流入”这个属性。 输出属性是一个带有 @Output 装饰器的可观察对象型的属性。 这个属性几乎总是返回 Angular 的EventEmitter。...第一次 ngDoCheck() 之后调用,只调用一次。 ngAfterContentChecked() 每次完成被投影组件内容的变更检测之后调用。...子组件的 EventEmitter 属性是一个输出属性,通常带有@Output 装饰器 import { Component, EventEmitter, Input, Output } from '@

    15.3K30

    Angular 显示英雄列表

    heroes.component.css 中的样式只会作用于 HeroesComponent,既不会影响到组件外的 HTML,也不会影响到其它组件中的 HTML。...主从结构 当用户在主列表中点击一个英雄时,该组件应该在页面底部显示所选英雄的详情。 在本节,你将监听英雄条目的点击事件,并更新英雄的详情。...click 外面的圆括号会让 Angular 监听这个  元素的 click 事件。 当用户点击  时,Angular 就会执行表达式 onSelect(hero)。...Angular 会把所点击的  上的 hero 对象传给它,这个 hero 也就是前面在 *ngFor 表达式中定义的那个。...但模板中的绑定表达式引用了 selectedHero 的属性(表达式为 {{selectedHero.name}}),这必然会失败,因为你还没选过英雄呢。 现在,从列表中随便点击一个条目。

    4.4K70

    Angular 显示英雄列表

    heroes.component.css 中的样式只会作用于 HeroesComponent,既不会影响到组件外的 HTML,也不会影响到其它组件中的 HTML。...click 外面的圆括号会让 Angular 监听这个  元素的 click 事件。 当用户点击  时,Angular 就会执行表达式 onSelect(hero)。...Angular 会把所点击的  上的 hero 对象传给它,这个 hero 也就是前面在 *ngFor 表达式中定义的那个。...但模板中的绑定表达式引用了 selectedHero 的属性(表达式为 {{selectedHero.name}}),这必然会失败,因为你还没选过英雄呢。 现在,从列表中随便点击一个条目。...给所选英雄添加样式 所有的  元素看起来都是一样的,因此很难从列表中识别出所选英雄。 如果用户点击了“Magneta”,这个英雄应该用一个略有不同的背景色显示出来,就像这样: ?

    4K30

    Angular快速学习笔记(2) -- 架构

    JavaScript 中,每个文件是一个模块,文件中定义的所有对象都从属于那个模块。 通过 export 关键字,模块可以把它的某些对象声明为公共的。...用户的修改通过事件绑定流回组件,把属性值设置为最新的值。Angular 在每个 JavaScript 事件循环中处理所有的数据绑定,它会从组件树的根部开始,递归处理全部子组件。 ?...带有 @Pipe 装饰器的类中会定义一个转换函数,用来把输入值转换成供视图显示用的输出值。...当 Angular 渲染它们的时候,会根据指令给出的指示对 DOM 进行转换。 指令就是一个带有 @Directive 装饰器的类。...通常在构造函数,注入依赖的service: constructor(private service: HeroService) { } 当 Angular 发现某个组件依赖某个服务时,它会首先检查是否该注入器中已经有了那个服务的任何现有实例

    5.3K20

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

    AfterContent 演示如何将外部内容投影到组件中,以及如何区分组件的视图中的投影内容和子组件。 演示ngAfterContentInit和ngAfterContentChecked挂钩。...本章的其余部分将进一步详细讨论选定的练习 Peek-a-boo:所有钩子 PeekABooComponent演示了一个组件中的所有钩子。 如果有的话,你很少会实现像这样的所有接口。...如果用户点击Update Hero按钮,日志会显示另一个OnChanges和两个更多的DoCheck,AfterContentChecked和AfterViewChecked三元组。...添加一个英雄会产生一个新的英雄。 间谍的ngOnInit记录该事件。 重置按钮清除英雄列表。 Angular从DOM中移除所有英雄元素并同时销毁他们的间谍指令。...大部分初始检查都是由Angular在页面其他地方首次渲染(与数据无关)而触发的。 仅仅通过鼠标移动到另一个输入框就会触发一个呼叫。 相对较少的调用显示相关数据的实际变化。

    6.2K10

    AngularDart4.0 指南- 模板语法二 顶

    payload:承载数据 考虑一个呈现英雄信息并响应用户操作的HeroDetailComponent。 虽然HeroDetailComponent有一个删除按钮,但不知道如何删除英雄本身。...当用户点击Delete时,组件的delete()方法被调用,指示StreamController将Hero添加到stream中。...模板语句有附作用 deleteHero方法有一个附作用:删除一个英雄。 模板语句的附作用不只是好的,但可预期。 删除英雄更新模型,可能会触发其他更改,包括查询并保存到远程服务器。...Angular为所有基本的HTML表单元素提供值访问器,Forms指南展示了如何绑定到它们。...这些元素的所有组件都保留在内存中,Angular可能会继续检查更改。 您的应用可能会占用相当可观的计算资源,会降低用户不可见的性能。

    30K20

    ng-content 中隐藏的内容

    请注意,目标 ng-content 会优先于 catch-all,即使它在模板中的位置靠后。 ngProjectAs 有时你的内部组件会被隐藏在另一个更大的组件中。...但是如果你通过按钮进行切换操作,你会注意到计数器的值不会增加。这意味着我们的计数器组件只被实例化了一次 - 从未被销毁和重新创建。...难道这是 ngIf 指令产生的问题,让我们测试一下 ngFor 指令,看看是否有同样的问题: import { Component } from '@angular/core'; @Component...其中唯一方法就是查看第三方库的代码,了解它们的内部处理逻辑。将组件的生命周期被绑定到我们的应用程序组件而不是包装器的意义是,开发者可以掌控计数器只被实例化一次,而不用了解第三方库的内部代码。...The solution 为了让包装器能够控制其子元素的实例化,我们可以通过两种方式完成:在我们的内容周围使用 元素,或者使用带有 “*” 语法的结构指令。

    2.7K30

    AngularDart 4.0 高级-结构指令 顶

    指南在描述如何将指令应用于HTML模板中的元素时引用了属性(attribute)名称。 还有其他两种Angular指令,在其他地方被广泛描述:(1)组件和(2)属性指令。...Angular不断检查可能会影响数据绑定的更改。 无论组件在做什么,它都会继续这样做。 虽然看不见,但组件及其所有后代组件都会占用资源。 性能和记忆负担可能很大,响应性可能会降低,用户什么也看不到。...NgIf能否取消NgFor的效果? 如果是这样(并且看起来应该如此),Angular应该如何概括取消其他结构指令的能力? 这些问题没有简单的答案。 禁止多项结构性指令使得它们没有实际意义。...这个用例有一个简单的解决方案:将*ngIf放在包裹*ngFor元素的容器元素上。 一个或两个元素可以是一个temple,所以你不必引入额外的HTML级别。...打算在其他地方使用的p span样式无意中应用于此处。 另一个问题:一些HTML元素要求所有直系孩子属于特定类型。 例如,元素需要子元素。

    16.1K20

    Angular 从入坑到挖坑 - 组件食用指南

    (非必须) 当通过命令行创建一个新的组件之后,会自动将新创建的组件注册到应用的根模块(app.module.ts)中 ?...text-red、bg-blue 都是 css 类名,如果想要在指定的元素上添加该类,则 css 类名对应的值为 true,反之则为 false NgStyle:用来设置元素的多个内联样式,如果只设置一个内联样式...当值为 false 时,则这些元素会从 dom 中被销毁,并且所有监听该 dom 元素的事件会被取消,当重新显示该元素时,会重新执行初始化的过程 与销毁元素不同,对于隐藏的元素来说,所有的元素监听事件还会执行监听的...,再次显示时不用重新进行初始化过程 NgFor:通过定义单条数据的显示格式,angular 以此为模板,循环渲染出所有的数据 ngFor="let item of products; let...指令上下文中的 index 属性在每次迭代中,会获取到条数据的索引值 当渲染的数据发生改变时 4,会导致 dom 元素的重新渲染,此时可以采用 trackBy 的方式,通过在组件中添加一个方法,指定循环需要跟踪的属性值

    15.8K30

    Angular: 最佳实践

    这很有用,因为当服务端提供一个 User 实例数据给你,它只能返回字符串类型的时间给你,但是你可能有一个 datepicker 控件,它将日期作为有效的 JS Date 对象返回,并且为了避免数据被误解...如果我们有一个 Order 类型的变量,我们只能将这三个字符串中的一个分配给 status 字段,分配其他的类型 TS 编辑器都会跑出错误。...组件 Component 组件是 Angular 的核心特性,如果你设法让它们被组织得井井有条,你可以认为你工作已经完成了一半。 考虑拥有一个或者几个基本组件类。...(它也可能执行一些其他常见的任务)并将实际的工作委托给另外一个组件。...小经验:当我们在带有子元素的 HTML 元素上编写 ngFor 指令时,请考虑将该元素分离为单独的组件,就像下面: ngFor="let user

    2.9K40

    AngularDart4.0 指南- 显示数据 顶

    最终的用户界面如下所示: ? 现场示例(查看源代码)演示了此页面中描述的所有语法和代码片段。 用插值显示组件属性 显示组件属性的最简单方法是通过插值来绑定属性名称。...它将元素(及其子元素)标记为“repeater模板”: ngFor="let hero of heroes"> {{ hero }}  不要忘记* ngFor中的主要星号...这是语法的重要组成部分。 有关更多信息,请参阅模板语法页面。 注意ngFor指令中的hero变量; 它是模板输入变量的一个例子。...Angular使用该变量作为双曲花括号内插的上下文。 在这种情况下,ngFor正在显示一个列表,但ngFor可以为任何Iterable对象重复项目。...回到app_component.dart并删除或注释掉英雄列表中的一个元素。 浏览器应该自动刷新,消息应该消失。 概要 现在你知道如何使用: 用双花括号插入来显示组件属性。 ngFor显示项目列表。

    5.3K10

    Angular 6.x 基础教程

    本系列教程的主要内容来源于 egghead.io get-started-with-angular 视频教程,但针对视频中的介绍的知识点做了适当地补充,建议有兴趣的同学直接查看该视频教程。...)">点击 当 Angular 在调用我们的事件处理函数时,会自动帮我们处理调用的参数。...第九节 - 使用 Output 装饰器 Output 装饰器的作用是用来实现子组件将信息,通过事件的形式通知到父级组件。...使用 ngClass 指令 ngClass 指令接收一个对象字面量,对象的 key 是 CSS class 的名称,value 的值是 truthy/falsy 的值,表示是否应用该样式。...这其中的原因是,ng-style 要求的参数是一个 Javascript 对象,color 是一个有效的 key,而 background-color 不是一个有效的 key ,所以需要添加 ''。

    15.6K20

    AngularDart4.0 指南-体系结构概述 顶

    添加绑定标记到模板HTML告诉Angular如何连接双方。 如图所示,有四种形式的数据绑定语法。 每个表单都有一个方向 - 从DOM到DOM,或者在两个方向。...用户的更改也会返回到组件,将属性重置为最新值,就像事件绑定一样。 Angular在每个JavaScript事件循环中处理所有数据绑定,从应用程序组件树的根到所有子组件。 ?...当Angular呈现它们时,它根据指令给出的指示转换DOM。 指令是一个带有@Directive注解的类。...在Dart中,唯一值为true的是布尔值true; 所有其他值是错误的。 JavaScript和TypeScript相反,将诸如1和大多数非空对象的值视为true。...包起来 您已经了解了关于Angular应用程序的八个主要构建块的基础知识: 模块 组件 模板 元数据 数据绑定 指令 服务 依赖注入 这是一个Angular应用程序中所有其他应用程序的基础,而且这足够了

    7.9K30

    Angular 2 架构(下)

    事件绑定: 在组件方法名被点击时触发。...指令是一个带有"指令元数据"的类。在 TypeScript 中,要通过 @Directive 装饰器把元数据附加到类上。...在Angular中包含以下三种类型的指令: 属性指令:以元素的属性形式来使用的指令。 结构指令:用来改变DOM树的结构 组件:作为指令的一个重要子类,组件本质上可以看作是一个带有模板的指令。...通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。...当所有的服务都被解析完并返回时, Angular 会以这些服务为参数去调用组件的构造函数。 这就是依赖注入 。

    2.2K20

    Angular学习资料大全和常用语法汇总(让后端程序员轻松上手)

    last返回当前列表项是否为最后一个 even返回当前列表项index是否为偶数,通常用在增加样式用来区分行与行之间 odd返回当前列表项index是否为奇数 ngFor="let...元素使用的 CSS 类 ng-class-even 类似 ng-class,但只在偶数行起作用 ng-class-odd 类似 ng-class,但只在奇数行起作用 ng-click 定义元素被点击时的行为...将文本转换为列表 (数组) ng-model 绑定 HTML 控制器的值到应用数据 ng-model-options 规定如何更新模型 ng-mousedown 规定按下鼠标按键时的行为 ng-mouseenter...ng-mouseup 规定当在元素上松开鼠标按钮时的行为 ng-non-bindable 规定元素或子元素不能绑定数据 ng-open 指定元素的 open 属性 ng-options 在 元素的 srcset 属性 ng-style 指定元素的 style 属性 ng-submit 规定 onsubmit 事件发生时执行的表达式 ng-switch 规定显示或隐藏子元素的条件

    5.4K41

    AngularDart4.0 指南- 表单 顶

    创建一个基本的表单 一个Angular表单有两个部分:一个基于HTML的模板和一个组件类,以编程方式处理数据和用户交互。 从课程开始,因为它简要地说明了英雄编辑可以做什么。...touched和untouched指示控件是否被访问过。 valid反映了控制值的有效性。 样式控件 有效的控制属性是最有趣的,因为当一个控制值无效时,你想发送一个强烈的视觉信号。...当控件是“原始的”时隐藏消息实现了这个目标。 当您向表单添加一个“清除”按钮时,您会看到此选项的重要性。 英雄Alter Ego是可选的,所以你可以不用关那个。 英雄power选择是必需的。...model.power = _powers[0]; model.alterEgo = ''; } 在提交按钮后面添加一个带有点击事件绑定的清除按钮:lib/src/hero_form_component.html...在此页面中,您学习了如何使用以下功能: 一个HTML表单模板和一个带有@Component注解的表单组件类。 表单提交,通过ngSubmit事件绑定处理。

    17.5K30

    Angular 快速学习笔记(1) -- 官方示例要点

    虽然构造函数也可以调用,但是我们需要让构造函数保持简单,只做初始化操作 b. 使用ngOnInit 生命周期钩子中调用服务 RXJS 处理异步操作 a....添加路由 ,路由定义 会告诉路由器,当用户点击某个链接或者在浏览器地址栏中输入某个 URL 时,要显示哪个视图,因此路由包含两个属性: i. path:一个用于匹配浏览器地址栏中 URL 的字符串...return of(result as T); }; } 在控制台中汇报了这个错误之后,这个处理器会汇报一个用户友好的消息,并给应用返回一个安全值,让它继续工作,可以使用...*ngFor 不能直接使用 Observable。 不过,它后面还有一个管道字符(|),后面紧跟着一个 async,它表示 Angular 的 AsyncPipe。...本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    3.6K00

    Angular 快速学习笔记(1) -- 官方示例要点

    虽然构造函数也可以调用,但是我们需要让构造函数保持简单,只做初始化操作 b. 使用ngOnInit 生命周期钩子中调用服务 RXJS 处理异步操作 a....添加路由 ,路由定义 会告诉路由器,当用户点击某个链接或者在浏览器地址栏中输入某个 URL 时,要显示哪个视图,因此路由包含两个属性: i. path:一个用于匹配浏览器地址栏中 URL 的字符串...return of(result as T); }; } 在控制台中汇报了这个错误之后,这个处理器会汇报一个用户友好的消息,并给应用返回一个安全值,让它继续工作,可以使用...*ngFor 不能直接使用 Observable。 不过,它后面还有一个管道字符(|),后面紧跟着一个 async,它表示 Angular 的 AsyncPipe。...本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    3.7K50
    领券