angular - 如何断点和调试角度模板?
问题描述
例如,在 React 中,您可以在视图/模板中放置一个断点并检查发生了什么。
编辑:假设我想看看这里发生了什么:
<h2>{{hero.name | uppercase}} Details</h2>
<div><span>id: </span>{{hero.id}}</div>
<div>
<label>name:
<input [(ngModel)]="hero.name" placeholder="name">
</label>
</div>
https://stackblitz.com/angular/kopjlplrpanj?file=src%2Fapp%2Fheroes%2Fheroes.component.html
我想检查这个模板范围内的变量。查看他们的价值观。
解决方案
有人会说调试模板会随 Ivy 一起提供,但我想说我们也可以轻松调试当前的 View Engine。
例如,这里有一些我会使用的选项:
1) Angular 为每个可以通过 path 找到的组件生成 ngFactory ng://ModuleName/ComponentName.ngfactory.js
。
每个工厂都包含两种方法updateDirectives
,updateRenderer
您可以在其中调试变量。
2)在模板中犯了一些错误
<h2>{{herox.name | uppercase}} Details</h2>
^^^^
现在您可以在控制台中找到目标位置
3)将以下代码放在模板的开头
<ng-container *ngIf="1; let x='ngIf; debugger'">{{x}}
您将自动转移到更新模板代码
有关更多信息,请参阅
更新:
我同意很难理解生成的代码,因此在简单的情况下您不需要它,您可以通过在某处打印它来查看值,即:
{{myVar}}
或者
<div [attr.debug-var]="someVar">
更新 2
{{ this.constructor.__proto__.constructor('', 'debugger')() }}
推荐阅读
- c++ - C++ getSmallest 程序
- r - 如何在 R 中聚合条件
- c# - Unity 中的 Google Admob 崩溃修复?
- android - 总能联系到计费客户
- python - 如何从数据框中的列列表中生成列?
- c - c语言从txt文件中读取数据
- spring-integration - Spring Integration Transform 失败回滚 JMS 并且不转发到错误通道
- c - 错误在开关中的开关内重复大小写值
- android-studio - 如何使用 Flutter Inspector 在 Flutter 中更改应用程序图标和 UI?
- django - get() 得到了一个意外的关键字参数“pk”:django