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

Angular 6在ngFor中使用不同列的Renderer2更改样式

Angular 6中,可以使用Renderer2来更改ngFor中不同列的样式。Renderer2是Angular提供的一个服务,用于操作DOM元素。

在ngFor中使用不同列的Renderer2更改样式的步骤如下:

  1. 首先,导入Renderer2服务:
代码语言:txt
复制
import { Renderer2 } from '@angular/core';
  1. 在组件的构造函数中注入Renderer2:
代码语言:txt
复制
constructor(private renderer: Renderer2) { }
  1. 在模板中,使用ngFor指令遍历数据,并为每个元素创建一个唯一的标识符:
代码语言:txt
复制
<div *ngFor="let item of items; let i = index" [attr.data-index]="i">
  {{ item }}
</div>
  1. 在组件中,使用@ViewChild装饰器获取ngFor生成的元素列表:
代码语言:txt
复制
@ViewChild('itemList') itemList: ElementRef;
  1. 在ngAfterViewInit生命周期钩子函数中,使用Renderer2来更改样式:
代码语言:txt
复制
ngAfterViewInit() {
  const elements = this.itemList.nativeElement.children;
  for (let i = 0; i < elements.length; i++) {
    const element = elements[i];
    const index = element.getAttribute('data-index');
    if (index % 2 === 0) {
      this.renderer.setStyle(element, 'background-color', 'lightgray');
    } else {
      this.renderer.setStyle(element, 'background-color', 'white');
    }
  }
}

在上述代码中,我们首先通过nativeElement获取到ngFor生成的元素列表,然后使用Renderer2的setStyle方法来更改元素的样式。根据元素的索引,我们可以判断奇偶行,并为奇数行和偶数行设置不同的背景颜色。

这是一个简单的示例,你可以根据实际需求进行更复杂的样式更改操作。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云对象存储(COS)。

  • 腾讯云云服务器(CVM):提供可扩展的云服务器实例,适用于各种计算场景,具有高性能、高可靠性和高安全性。了解更多信息,请访问:腾讯云云服务器
  • 腾讯云对象存储(COS):提供安全、稳定、低成本的对象存储服务,适用于存储和处理各种类型的数据。了解更多信息,请访问:腾讯云对象存储
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

请注意,样式属性名称可以dash-case(如上所示)或camelCase(如fontSize)书写。...'none' : 'block'">Hide with style 隐藏一个元素与NgIf去除一个元素是完全不同。 当你隐藏一个元素时,该元素及其所有的后代仍然保留在DOM中。...* ngFor与index(索引) NgFor指令上下文index属性返回每个迭代中项目的从零开始索引。 您可以捕获模板输入变量中index,并在模板中使用它。...模板引用变量警告说明 模板引用变量(#phone)与模板输入变量(let phone)不同,如您在*ngFor中可能看到那样。 了解“结构指令”指南中差异。 引用变量范围是整个模板。...源是引号(“”)内或插值({{}})内。 source指令每个成员都可以自动获得绑定。 您不必模板表达式或语句中使用任何特殊操作来访问指令成员。 您对目标指令成员访问权限有限。

29.9K20

Angular开发实践(七): 跨平台操作DOM及渲染器Renderer2

Angular开发实践(六):服务端渲染》这篇文章最后,我们也提到了服务端渲染中需要牢记几件事件,其中就包括不要使用window、 document、 navigator等浏览器特有的类型以及直接操作...通过合适方法,使用 Angular 构建应用,可复用在多种不同平台应用上 —— Web、移动 Web、移动应用、原生应用和桌面原生应用。...为了能够支持跨平台,Angular 通过抽象层封装了不同平台差异。比如定义了抽象类 Renderer2 、抽象类 RootRenderer 等。...通过Renderer2设置divcss样式background-color } } 获取组件中div Angular应用中不应该通过原生 API 或者 jQuery 来直接获取DOM元素...这样我们就引出Angular抽象类 Renderer2 来对元素进行设置样式、属性、插入子元素等操作。

2.6K90
  • AngularDart4.0 指南- 显示数据 顶

    在任一种样式中,模板数据绑定都具有对组件属性相同访问权限。 * ngFor显示一个列表属性 要显示英雄列表,首先向组件添加英雄名字列表,并将myHero重新定义为列表中第一个名字。...元素中* ngForAngular“repeater”指令。...模板中使用任何Angular指令之前,您需要将它们组件@Component注解指令参数中。...NgIf进行条件显示 有时候,只有特定情况下,应用程序才需要显示视图或视图一部分。 如果有三个以上英雄,让我们更改示例以显示一条消息。...回到app_component.dart并删除或注释掉英雄列表中一个元素。 浏览器应该自动刷新,消息应该消失。 概要 现在你知道如何使用: 双花括号插入来显示组件属性。 ngFor显示项目列表。

    5.3K10

    Angular 中结构指令模式 - 它们是什么且怎么使用

    Angular 中,有两种类型指令。属性指令修改 DOM 元素外观或者行为。结构指令添加或者移除 DOM 元素。 结构指令是 Angular 中最强大特性之一,然而它们却频繁被误解。...如果你对学习 结构指令 感兴趣,那么现在我们就来接着阅读,并了解它们是什么,它们有什么用以及如何在项目中使用它们。 你将学到什么 本文中,你将学到关于 Angular 结构指令模式知识点。...学完本文,你将更好理解这些指令并在实际项目中使用它们。 Angular 结构指令是什么? Angular 结构指令是能够更改 DOM 结构指令。这些指令可以添加、移除或者替换元素。... Angular 中,有三种标准结构化指令。...Angular 中我们什么时候需要用结构指令呢? 如果你想在 DOM 中添加或者移除一个元素时候,你就应该使用结构指令。 当然,我们还可以使用它们来更改元素 CSS 样式,或者添加事件监听器。

    3.8K20

    AngularDart 4.0 高级-结构指令 顶

    每个结构指令都与该模板有所不同。 三种常见内置结构指令 - NgIf,NgFor和NgSwitch ... - 模板语法指南中进行了描述,并在整个Angular文档中示例中进行了介绍。...属性指令改变元素,组件或其他指令外观或行为。 例如,内置NgStyle指令可以同时更改多个元素样式。 您可以将许多属性指令应用于一个宿主元素。 您只能将一个结构指令应用于宿主元素。...您可以分配给ngFor字符串中启用这些功能,这是您在Angularmicrosyntax中编写。...Angular设置let-hero为上下文$implicit属性值,NgFor已经当前迭代hero初始化了它值。 API指南描述了额外NgFor指令属性和上下文属性。...template元素 HTML 5 是用于呈现HTML方案。 它从不直接显示。 事实上,呈现视图之前,Angular注释替换及其内容。

    16K20

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

    当您进行更改时,请通过重新加载浏览器窗口来保持运行。 应用程序重构 添加新功能之前,您可以从应用程序重构中受益。 应用模板文件 您将对应用程序组件模板进行多次更新。...显示数据Showing a list property with *ngFor部分阅读更多关于ngFor和模板输入变量和模板语法页ngFor部分 节点内添加内容hero模板变量来显示英雄属性...> {{hero.name}} 要在模板中使Angular指令,需要在组件@Component注解指令参数中列出。...当表达式为false时,Angular删除选定类。 ===运算符测试给定对象是否相同。 模板语法指南中阅读有关[class]绑定更多信息。  ...您将Hero类移到lib / src下自己文件中。 你增加了选择英雄和显示英雄细节能力。 您了解了如何在组件模板中使用核心指令ngIf和ngFor

    3K30

    AngularDart4.0 指南- 表单 顶

    Angular可不使用Bootstrap类或任何外部库样式Angular应用程序可以使用任何CSS库或不使用。...你会看到一个样式表单! 使用* ngFor添加powers 英雄必须从一个固定机构批准权力列表中选择一个超级大国。 您在内部维护该列表(HeroFormComponent中)。...您将在表单中添加一个select,并使用ngFor(先前“显示数据”页面中看到一种技术)将选项绑定到powers列表。...p模板输入变量每次迭代中是不同power; 您使用插值语法显示其名称。 与ngModel双向数据绑定 现在运行应用程序有点令人失望。 ? 你没有看到英雄数据,因为你还没有绑定到英雄。...文本字段变为空白,如果您更改了power,它将恢复为默认值。 ngSubmit提交表单 用户应该能够填写表单后提交这个表单。

    17.5K30

    Angular 显示英雄列表

    你可以多种方式定义私有样式,或者内联在 @Component.styles 数组中,或者 @Component.styleUrls 所指出样式表文件中。...你可以本指南底部查看最终代码中找到它们。 @Component 元数据中指定样式样式表都是局限于该组件。 ...Angular 会把所点击  上 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式中定义那个。...如果用户点击了“Magneta”,这个英雄应该用一个略有不同背景色显示出来,就像这样: 所选英雄颜色来自于你前面添加样式 CSS 类 .selected。...用户可以选择一个英雄,并查看该英雄详情。 你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以 class 绑定来切换 CSS 样式类。

    4.4K70

    Angular 2 版本 ng-bootstrap 初体验

    Angular 2 版本 ng-bootstrap 初体验 最近 angular-ui 团队终于正式发布了基于 Angular 2 Bootstrap 界面库 ng-bootstrap , 工作中一直..., 方便在 html 视图中使用, 选择器 (selector) 使用同一前缀 ngb , 类名则统一使用 Ngb 前缀。...ng-bootstrap 还有更多组件, 就不一一举了, 可以继续看: ng-bootstrap 官方例子 我整理一些 ng-bootstrap 例子 小结 实现 ng-bootstrap 的人还是原来做...angular-ui 那些人, 可以说配方还是原来配方, 但是这味道么就跟原来有很大不同了, 完全切换到了 Angular2 风格。...不过总的来说, ng-bootstrap 推出将会极大推进 Angular 2 实际项目中应用, 而不只是停留在 demo 阶段, 因为 AngularJS 1.x 时期, 很多项目都是以 AngularJS

    1.5K20

    Angular 显示英雄列表

    你可以多种方式定义私有样式,或者内联在 @Component.styles 数组中,或者 @Component.styleUrls 所指出样式表文件中。...你可以本指南底部查看最终代码中找到它们。 @Component 元数据中指定样式样式表都是局限于该组件。 ...Angular 会把所点击  上 hero 对象传给它,这个 hero 也就是前面 *ngFor 表达式中定义那个。...给所选英雄添加样式 所有的  元素看起来都是一样,因此很难从列表中识别出所选英雄。 如果用户点击了“Magneta”,这个英雄应该用一个略有不同背景色显示出来,就像这样: ?...用户可以选择一个英雄,并查看该英雄详情。 你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以 class 绑定来切换 CSS 样式类。

    4K30

    AngularDart4.0 英雄之旅-教程-07路由 顶

    将模板URL更改为heroes_component.html,并将样式文件更改为heroes_component.css。...这个举动创建了一个单例HeroService实例,可用于应用程序所有组件。 Angular注入HeroService,您可以DashboardComponent中使用它。...警告模板中使Angular管道之前,需要将其组件@Component注解pipes参数中。 您可以单独添加管道,或者为了方便起见,可以使用COMMON_PIPES组。...早些时候,你元素包围了这些链接: router-link-active 类 Angular路由器将router-link-active类添加到其路由与活动路由相匹配HTML导航元素。...你走过路 以下是您在此页面中所取得成果: 您添加了Angular路由器来浏览不同组件。 您了解了如何创建路由器链接来表示导航菜单项。 您使用路由器链接参数导航到用户选择英雄细节。

    17.5K30

    AngularDart 4.0 高级-管道 顶

    管道和变化检测 Angular通过每个DOM事件之后运行更改检测过程查找数据绑定值更改:每次击键,鼠标移动,计时器滴答和服务器响应。 这可能是昂贵Angular努力尽可能降低成本并适当。...如果你点击reset按钮,Angular原有英雄新列表替换heroes并更新显示。 如果您添加了删除或更改英雄功能,Angular会检测这些更改并更新显示。...虽然你没有得到你想要行为,但Angular并没有被破坏。 它只是使用不同变更检测算法,忽略对列表或其任何项目的更改。...当你不能时,你可以使用不纯管道。 或者你可能根本不使用管道。 组件属性来追求管道目的可能会更好,这点在本页稍后会讨论。 不纯管道 Angular每个组件更改检测周期执行不纯管道。...下一步 管道是封装和共享常见显示值转换好方法。 像样式一样使用它们,将它们放入模板表达式中,以丰富视图吸引力和可用性。 API参考中探索Angular内置管道库。

    6.3K20

    前端三大主流框架区别(二)

    比如遍历直接在jsx中使用map,判断if等原生js方法 angular指令,比如:*ngIf *ngFor *ngSwitchCase 模板语法 vue 采用双花括号{{}}绑定数据 react...采用单花括号{}绑定数据 angular 采用双花括号{{}}绑定数据 组件 vue 中使用Vue.component定义或者直接在项目中一般使用以.vue结尾单文件组件。...react react中一切皆为js,定义组件可以以构造函数(无状态组件)或者ES6类形式(状态组件)创建组件,可以以.js或者.jsx结尾文件中创建。...例如:this.currentPage = 1 react 构造函数中this.state={}或者直接写成类属性state={},更改状态数据使用:this.setState({comment...angular 中可以和react一样,构造函数中定义数组状态,也可以直接定义为累属性,和构造函数平级,一般放到构造函数上面:todolist: any[] = [];,修改数据时候和vue类似,

    58330

    ionic3升级适配angular5

    angular5最新beta版 ionic3官网建议是更新依赖到angular5.0.0版本,而根据上述说明,优先选择做了做了bug修复angular5.0.1版。...更新说明: ---- 更改内容: I18n更改; 内置管道如Date、Currency、Percent更改; 弃内容: compiler: ngGetContentSelectors()v4版本被移除...也已经失效; compiler: 编译选项useDebug从v4版本已经弃且无效,现在移除; common: NgForv4版本被弃,现用NgForOf代替,但不影响模版中使用*ngFor; common...core: TrackByFnv4版本被弃并移除,现用TrackByFunction代替; http: 弃 @angular/http,转为使用@angular/common/http; router...本项目中,因为没有用到那几个内置管道,也没有用到路由,所以主要是调整Http模块: 4.x中HttpClient模块被封装在@angular/common中,新HttpClient被封装在@angular

    2.5K40

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

    主要是因为前段时间写过一些关于Angualr相关实战文章,有些爱学习小伙伴对这方面比较感兴趣,但是又不知道该怎么入手(因为认识我大多数小伙伴都是后端同学),所以今天准备出一篇Angular学习资料汇总和日常开发中使用比较频繁语法总结...this.platform) } 5、input事件在用户输入时触发: 6、...属性绑定 [ ] 语法: 7、[(ngModel)] :双向绑定: NgModel 指令允许你显示数据属性并在用户进行更改时更新该属性...ngFor循环使用: 属性index、count、first、last、even、odd index属性提供当前对象索引 count提供当前数据集长度,类似于datasource.length...元素使用 CSS 类 ng-class-even 类似 ng-class,但只偶数行起作用 ng-class-odd 类似 ng-class,但只奇数行起作用 ng-click 定义元素被点击时行为

    5.3K41
    领券