Angular 2 Renderer2 - 它是如何工作的

2024-05-24

我试图理解在 Angular 2 的指令或组件中添加 renderer2 装饰的必要性。

来自文档:渲染器2文档 https://angular.io/api/core/Renderer2他们没有提供其工作原理的示例。谁能用完整的例子解释一下。请


Renderer2只是一个抽象。 如果您使用Universal(服务器端渲染)或WebWorkers,则没有可用的DOM,直接访问DOM的代码只会导致异常。

如果你使用Renderer2,Angular 可以使用其依赖注入功能提供不同的实现,以使您的代码使用与代码当前运行的平台兼容的实现。

Renderer2非常有限,因为所有方法都只允许更新 DOM,但没有一个允许read来自 DOM 的任何信息。 如果您确实需要阅读,则需要采取特殊措施使其与 Universal 或 WebWorker 兼容(例如,检查当前平台,如果不是浏览器平台,则跳过直接访问 DOM 的代码的执行,或者使用由当前平台)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 2 Renderer2 - 它是如何工作的 的相关文章

随机推荐

  • Java中如何确保String对象被销毁?

    我公司的一名员工需要通过我编写的程序修改 SQL Server 数据库中的数据 该程序首先使用 Windows 身份验证 我要求 DBA 授予该特定用户对所述数据库的写入权限 他们不愿意这样做 而是授予了写权限myWindows 用户帐户
  • 如何使用 thymeleaf 和 spring 用列表填充下拉列表

    我需要用字符串列表中的所有值填充下拉列表 控制器类 RequestMapping value generateIds method RequestMethod GET public String launchPage Model model
  • 是否可以使用 Python 读取 FTP 文件而不编写它们?

    我正在尝试使用 Python 的 ftplib 读取文件而不写入它们 大致相当于 def get page url try return urllib urlopen url read except return 但使用FTP I trie
  • 在 MATLAB 图中用值标记点

    以下命令确实用正方形标记了点 但没有在其中放入值 例如 21 0 X 21 8 2 1 0 Y 0 1 2 3 4 plot X Y k s 我应该添加哪个参数以便全部5点值出现在图上吗 这些值不能一一键入 因为它们是随机数 因此它们可能会
  • 打字总是抱怨全局模块

    我对打字稿很陌生 无论我尝试安装什么类型 我都会得到 打字错误 消息 尝试将 Angular 编译为外部模块 但它看起来像全局模块 我只是想做 typings install dt angular 我究竟做错了什么 Update 如果您对此
  • 从类 T 获取函数名 (__func__) 和指向成员函数的指针 void(T::*pmf)()

    是否可以写一些f 接受类型的模板函数T和一个指向签名成员函数的指针void T pmf 作为 模板和 或函数 参数并返回const char 指向成员函数的 func 变量 或损坏的函数名称 EDIT 我被要求解释我的用例 我正在尝试编写一
  • 停止 JavaScript 执行而不锁定浏览器

    您是否能够在不锁定浏览器的情况下停止 JavaScript 执行 通常停止执行的方法是无限执行while loop 但对于 FireFox 它会锁定浏览器 直到循环结束 您对此有何看法 我正在尝试覆盖window confirm 使用 HT
  • 构建服务器上的基础设施组件

    我 继承 了一个新的 旧的 Winforms 项目 并希望将其放到我们的构建服务器 Bamboo 上 该构建服务器只安装了绝对最低限度的版本 NET 3 5 仅此而已 我们希望保持这种状态 第一步 我将 Infragistics 组件的所有
  • JavaScript 在一行中定义并返回一个变量

    在 JavaScript 中 如果我想返回一个变量 但不想修改它或将其泄漏到全局范围中 我可以像这样在一行中定义并返回它吗 return var Foo bar 但是 我认为我在任何地方都没有见过这种情况 我更常见的是 var Foo ba
  • RTC简单ID查询结果404?

    我试图简单地通过 ID 查找 RTC 票证 但它告诉我 404 未找到 也许我应该用一些东西替换 ggTXcJdTEeCznlnpJMXHdQ 或爵士乐或 oslc 或上下文或http purl org dc terms http purl
  • 在EJB3中如何使用JNDI获取新的Stateful Session Bean?

    我正在尝试使用 JNDI 在 servlet 中获取新的有状态会话 Bean 作为局部变量 我的doGet 方法有以下几种 Bean bean Bean new InitialContext lookup beanName 我尝试过包括ja
  • 获取当前范围内所有定义的变量

    我正在解析一个包含以下内容的网站 hmapId 7 42500000000626135 hmapStartInterv 7 750 hmapEndInterv 7 846 hmapUrlInterv 7 some url hmapNameI
  • Phoenix 编程:未定义函数 page_path/2

    我的网络应用程序遇到问题 出现以下编译错误 Compilation error on file web controllers auth ex CompileError web controllers auth ex 49 undefine
  • 如何检查用户是否使用 FB SDK 4.0 for Android 登录?

    几天前 我在我的应用程序中实现了 FB Login 今天我发现我实现的大部分内容现在都已弃用 之前我用的是Session查看用户是否已登录 但是 这不适用于新的 SDK 根据他们的文档 我们可以使用AccessToken getCurren
  • TypeScript - 如何从方法的参数推断类泛型类型?

    我正在尝试从稍后调用的方法参数中输入类泛型 在我们调用带有泛型参数的方法之前 类的泛型类型是不知道的 然后 对于任何其他方法 将传递泛型类型 老实说 对我来说 这似乎是一个非常复杂的功能 我什至不确定 TypeScript 是否有办法做到这
  • 节点js(获取连接)

    var nodePort 3030 var express require express var app express var bodyParser require body parser var db require mysql va
  • Java Hibernate 和 SQL Server 中 UUID 的不同表示

    我正在尝试绘制一个UUID使用 Hibernate 将 POJO 中的列转换为 SQL Server 表列 注释的应用如下 Id GeneratedValue Column name Id columnDefinition uniqueid
  • 低于 64K 方法时出现“方法超出编译器指令限制”消息

    我经常在日志中看到类似这样的重复消息 Method exceeds compiler instruction limit 29278 in void com xxxxxxapp xxxxxx MyGLRenderer onDrawFrame
  • 如何在 Windows Phone 7 Silverlight 应用程序中保存应用程序状态(变量值、按钮状态等)?

    如果用户按下后退按钮 或例如按下应用程序内的横幅 以在应用程序恢复时设置相同的设置 如何保存 Silverlight 应用程序的状态 Windows Phone 7中有没有类似注册表的东西 一些本地存储 我可以使用任何数据库来保存应用程序设
  • Angular 2 Renderer2 - 它是如何工作的

    我试图理解在 Angular 2 的指令或组件中添加 renderer2 装饰的必要性 来自文档 渲染器2文档 https angular io api core Renderer2他们没有提供其工作原理的示例 谁能用完整的例子解释一下 请