首页
学习
活动
专区
工具
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

Angular 显示英雄列表

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

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

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

    15.3K30

    Angular2 之 结构型指令几个概念

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

    3K20

    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

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

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

    30K20

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

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

    6.2K10

    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

    AngularDart4.0 指南- 显示数据 顶

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

    5.3K10

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

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

    15.8K30

    Angular: 最佳实践

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

    2.8K40

    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是否为奇数 <li *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.3K41

    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
    领券