“ng-reflect-*”属性在 Angular2/4 中起什么作用?

2023-11-26

这里我在 Angular4 应用程序中有一个复杂的数据结构。

它是一个有向多重图,在节点和链接上都用字典进行参数化。我的角度组件正在研究这个复杂的数据模型。

在 Angular2.4 中,一切正常。自从我们切换到 Angular4 后,我将其添加到我的 DOM 中:

<g flareNode="" ng-reflect-model="{'id':'an-id-of-my-object'">

...它是从以下模板片段生成的:

<svg:g flareNode [model]="item"></svg:g>

Note, model这里只是我组件的数据成员。它没有(……应该没有)特定的 Angular2 含义。它是我的应用程序背后复杂数据结构的一部分。

我的第一印象是 Angular序列化model组件类的数据成员,获取其前 30 个字符,然后将这个完全无用的东西放入 DOM 中!

我对吗?这是什么整体ng-reflect-model在 DOM 中,Angular4 中的 DOM 有哪些特定用途,而 Angular2 中没有?


ng-reflect-${name}添加属性是为了调试目的,并显示组件/指令在其类中声明的输入绑定。因此,如果您的组件是这样声明的:

class AComponent {
  @Input() data;
  @Input() model;
}

生成的 html 将呈现如下:

<a-component ng-reflect-data="..." ng-reflect-model="...">
   ...
<a-component>

它们仅在使用调试模式时存在 - Angular 的默认模式。要禁用它们,请使用

import {enableProdMode} from '@angular/core';

enableProdMode();

inside main.ts文件。这些属性是通过添加的这个函数在这里:

function debugCheckAndUpdateNode(...): void {
  const changed = (<any>checkAndUpdateNode)(view, nodeDef, argStyle, ...givenValues);
  if (changed) {
    const values = argStyle === ArgumentType.Dynamic ? givenValues[0] : givenValues;
    if (nodeDef.flags & NodeFlags.TypeDirective) {
      const bindingValues: {[key: string]: string} = {};
      for (let i = 0; i < nodeDef.bindings.length; i++) {
        const binding = nodeDef.bindings[i];
        const value = values[i];
        if (binding.flags & BindingFlags.TypeProperty) {
          bindingValues[normalizeDebugBindingName(binding.nonMinifiedName !)] =
              normalizeDebugBindingValue(value); <------------------
        }
      }

    ...

    for (let attr in bindingValues) {
      const value = bindingValues[attr];
      if (value != null) {
        view.renderer.setAttribute(el, attr, value); <-----------------
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“ng-reflect-*”属性在 Angular2/4 中起什么作用? 的相关文章

随机推荐

  • 尝试获取 ImageView 中图像的显示尺寸

    我正在尝试获取图像视图中显示的图像的实际大小 实际上我的图像比屏幕大 图像视图正在调整图像大小以显示它 我正在寻找这个新尺寸 我试图在自定义视图中重写 ImageView 的 onDraw 方法 但我没有得到正确的高度和宽度 public
  • 如何在 C# 中解码 HTML 字符?

    我有用 HTML 字符实体编码的电子邮件地址 NET 中有什么可以将它们转换为纯字符串吗 您可以使用HttpUtility HtmlDecode 如果您使用 NET 4 0 您还可以使用WebUtility HtmlDecode它不需要额外
  • Android 中的 OpenCV 模板匹配示例

    我是 OpenCV 的初学者 我正在尝试制作一个示例 Android 应用程序 以使用 OpenCV 模板匹配来匹配给定图像中的模板图像 我在互联网上搜索 找不到合适的 android 或 java 代码来满足我的要求 但我有 C 代码 我
  • SQLite Android 无法打开数据库文件

    编辑 我在手机上尝试过 它可以工作 有人能告诉我为什么它不能在模拟器上工作吗 我正在尝试在 Android 上打开数据库 但它抛出 无法打开数据库文件 异常 在调试器中 似乎错误发生在线路上mDb mDbHelper getWritable
  • Gradle 项目刷新失败:已完成

    背景 此时我已经与 Studio Gradle 斗争了一天左右 最初存在多个 PEBKAC 错误 即权限和资源限制 但后来已得到解决 不幸的是 google fu 因当前错误而使我失败 尝试完成时特别发生错误 gradlew clean没有
  • 如何使用 Xuggler 获取音频进行编码

    我正在编写一个记录屏幕和音频的应用程序 虽然屏幕录制工作完美 但我在使用 JDK 库获取原始音频时遇到困难 这是代码 try Now we re going to loop long startTime System nanoTime Sy
  • NSAttributedString 在 iOS 8 下性能更差

    在 iOS 8 和 8 1 beta 下 创建 NSAttributedString 的性能比 7 差很多 2 3 倍 如果您在同一个视图上使用多个实例 这一点尤其明显 加载 4 个不同的标签将导致用户点击和新视图出现后一秒以 上的延迟 不
  • 带有 Phonegap Build 和 PushPlugin 的 Android 白色通知图标

    我正在使用 Adob e 的 Build 服务摆弄 Phonegap 我想知道是否 如果是 如何 我可以让我的通知显示一个白色图标 如 Google 所描述的 here 我正在使用推送插件但我找不到任何关于此的文档 目前 我的应用程序仅在通
  • Flask Jinja2 - 解析 JSON

    我尝试在 Jinja2 HTML 模板中显示一些 JSON 结果 但它返回一个空页面 或者新行上 JSON 的每个字符 或者每个带有空格的字符 我发送到 Jinja2 模板的对象如下所示 name John lastname Smith a
  • TortoiseSVN 图标在 Windows 7 下不显示

    我似乎无法在 Windows 7 下显示图标 我真的很怀念 Windows XP 中的这一点 如何解决 Windows 只能显示有限数量的覆盖图标 总共 15 个 在 Windows 使用之后有 11 个 类似的程序办公室凹槽 Dropbo
  • 在 PhoneGap 插件中保留回调上下文?

    我需要实现一些在一定时间间隔内触发操作并将结果发送回 JavaScript 的功能 为了简化事情 我将使用 PhoneGap 文档中的 echo 示例 void echo CDVInvokedUrlCommand command self
  • 为什么我无法在程序中声明字符串:“字符串是未声明的标识符”

    我无法在程序中声明字符串 string MessageBoxText CharNameTextBox gt Text 它就是行不通 它说string is undeclared identifier 我在命名空间或包含或类似的东西中缺少什么
  • 为什么将 try {} finally {} 与空的 try 块一起使用?

    我注意到在System Threading TimerBase Dispose 该方法有一个try finally 阻止但try 是空的 有没有使用价值try finally 与一个空的try ReliabilityContract Con
  • 如何在 Android 中从视频 URL 捕获/录制剪辑并保存到手机

    在 Android 中 是否可以从视频 URL 例如 视频中的任意 5 10 秒 录制短片 例如 视频中的任意 5 10 秒 http www test com video mp4 例如 我想在 Activity 中流式传输视频 来自 ur
  • 无法在 nginx-ingress 上添加具有同一主机的多个 Ingress

    我正在尝试添加多个应共享同一主机的入口 一个 Ingress 应该处理对 www example de some 的请求 另一个 Ingress 应该处理所有其他请求 这是 Ingress 配置的片段 apiVersion extensio
  • Laravel - artisan down /维护模式除了自己的IP

    目前我正在使用 Laravel5 我的问题是如果我使用维护模式 php artisan down 怎么能说 除了我自己的 IP 之外 每个人的应用程序都已关闭 所以每个人都看到维护模式 但我仍然可以访问该网站 现在你可以使用php arti
  • 在文本区域内显示div

    我希望在文本区域中显示 html 是否可以显示一个 div a 内包含表单元素 div
  • 具有链式方法的 Java 方法调用顺序

    给出的是以下 Java 代码示例 builder something somethingElse somethingMore builder getSomething Java 语言规范是否保证getSomething 被调用after t
  • 如何获得句子文本中二元组的概率?

    我有一篇文章 其中有很多句子 我该如何使用nltk ngrams来处理它 这是我的代码 sequence nltk tokenize word tokenize raw bigram ngrams sequence 2 freq dist
  • “ng-reflect-*”属性在 Angular2/4 中起什么作用?

    这里我在 Angular4 应用程序中有一个复杂的数据结构 它是一个有向多重图 在节点和链接上都用字典进行参数化 我的角度组件正在研究这个复杂的数据模型 在 Angular2 4 中 一切正常 自从我们切换到 Angular4 后 我将其添