最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Angular中使用Renderer2的操作代碼

 更新時間:2024年03月06日 08:24:32   作者:白如意i  
Renderer2 類是 Angular 提供的一個抽象服務(wù),允許在不直接操作 DOM 的情況下操縱應(yīng)用程序的元素,本文給大家介紹了如何在 Angular 中使用 Renderer2,文中通過代碼示例給大家講解的非常詳細(xì),需要的朋友可以參考下

Renderer2 類

Renderer2 類是 Angular 提供的一個抽象服務(wù),允許在不直接操作 DOM 的情況下操縱應(yīng)用程序的元素。這是推薦的方法,因?yàn)樗沟酶菀组_發(fā)可以在沒有 DOM 訪問權(quán)限的環(huán)境中渲染的應(yīng)用程序,比如在服務(wù)器上、在 Web Worker 中或在原生移動端。

基本用法

通常會在自定義指令中經(jīng)常使用 Renderer2,因?yàn)?Angular 指令是修改元素的邏輯構(gòu)建塊。以下是一個簡單的示例,使用 Renderer2 的 addClass 方法向具有該指令的元素添加 wild 類:

import { Directive, Renderer2, ElementRef, OnInit } from '@angular/core';

@Directive({
  selector: '[appGoWild]'
})
export class GoWildDirective implements OnInit {
  constructor(private renderer: Renderer2, private el: ElementRef) {}

  ngOnInit() {
    this.renderer.addClass(this.el.nativeElement, 'wild');
  }
}

現(xiàn)在,您可以在模板中向元素添加該指令,渲染時將添加 wild 類:

<h1 appGoWild>
  Hello World!
</h1>
<!-- <h1 class="wild">Hello World!</h1> -->

您可以看到,總體上使用 Renderer2 并不比直接操作 DOM 更復(fù)雜?,F(xiàn)在讓我們來看一些最有用的方法:

createElement / appendChild / createText

創(chuàng)建新的 DOM 元素并將它們附加到其他元素中。在這個例子中,我們創(chuàng)建一個新的 div 和一個文本節(jié)點(diǎn)。然后我們將文本節(jié)點(diǎn)放入我們的新 div 中,最后將我們的 div 添加到我們指令引用的元素中:

constructor(private renderer: Renderer2, private el: ElementRef) {}

ngOnInit() {
  const div = this.renderer.createElement('div');
  const text = this.renderer.createText('Hello world!');

  this.renderer.appendChild(div, text);
  this.renderer.appendChild(this.el.nativeElement, div);
}

我們的模板在渲染后將如下所示,假設(shè)我們在一個 article 元素上應(yīng)用了該指令:

<article>
  <div>Hello world!</div>
</article>

setAttribute / removeAttribute

使用 setAttribute 或 removeAttribute 來設(shè)置或移除屬性:

constructor(private renderer: Renderer2, private el: ElementRef) {}

ngOnInit() {
  this.renderer.setAttribute(this.el.nativeElement, 'aria-hidden', 'true');
}

addClass / removeClass

要添加類,可以執(zhí)行以下操作:

constructor(private renderer: Renderer2, private el: ElementRef) {}

ngOnInit() {
  this.renderer.addClass(this.el.nativeElement, 'wild');
}

我們在上面的示例中已經(jīng)介紹了 addClass。至于 removeClass,只需提供元素引用和要移除的類名:

constructor(private renderer: Renderer2, private el: ElementRef) {}

ngOnInit() {
  this.renderer.removeClass(this.el.nativeElement, 'wild');
}

setStyle / removeStyle

使用 setStyle 使用 Renderer2 添加內(nèi)聯(lián)樣式:

constructor(private renderer: Renderer2, private el: ElementRef) {}

ngOnInit() {
  this.renderer.setStyle(
    this.el.nativeElement,
    'border-left',
    '2px dashed olive'
  );
}

…并使用 removeStyle 來移除它:

constructor(private renderer: Renderer2, private el: ElementRef) {}

ngOnInit() {
  this.renderer.removeStyle(this.el.nativeElement, 'border-left');
}

setProperty

通過以下示例,您可以在圖像元素上設(shè)置 alt 屬性:

constructor(private renderer: Renderer2, private el: ElementRef) {}

ngOnInit() {
  this.renderer.setProperty(this.el.nativeElement, 'alt', 'Cute alligator');
}

…或設(shè)置輸入字段的值:

// ...

ngOnInit() {
  this.renderer.setProperty(this.el.nativeElement, 'value', 'Cute alligator');
}

到此這篇關(guān)于在Angular中使用Renderer2的示例代碼的文章就介紹到這了,更多相關(guān)Angular中使用Renderer2內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

津市市| 容城县| 长丰县| 邢台县| 宁南县| 柏乡县| 股票| 银川市| 汉中市| 馆陶县| 神池县| 苏尼特左旗| 文成县| 博客| 枣阳市| 奉贤区| 镇安县| 桃江县| 嘉鱼县| 景泰县| 玉溪市| 苏尼特右旗| 阿拉尔市| 咸丰县| 察隅县| 永安市| 琼结县| 福贡县| 辛集市| 平江县| 巫溪县| 潮州市| 资阳市| 固原市| 吉木乃县| 南昌市| 靖宇县| 历史| 刚察县| 长春市| 哈巴河县|