<ng-container *ngFor="let child of root.getChildren()">
<ng-container id="prefix" *ngIf="hasPrefix(child)">
{{getPrefix(child)}}
</ng-container>
</ng-container>
我只是在学习角度。我没有太多的角度经验。如果我错了,请随时纠正我。
我有一个树数据结构,我必须遍历树并打印子节点的前缀。但是前缀是私有属性。在angular中访问视图组件中的私有属性的最佳实践是什么?上面的代码导致调用多个方法,因为在递归过程中将检测到更改。
谢谢。
答案 0 :(得分:0)
理想情况下,您不应在控制器外部使用私有属性。如果要在视图中使用它们,可以将它们声明为公共。
答案 1 :(得分:0)
如果我对您的理解正确,则可以使用公共获取程序访问一些私有字段。没关系,这不是问题。是的,这会因为getter的调用而造成一些开销,但是您现在不必担心这一点。这样做的原因是DOM操作(这种操作也经常发生)的成本要高得多,并且此开销非常小。
这样的代码是可以的:
class MyController {
private _model: object;
public get name() {return this._model.name;}
}
如果您开始遇到性能问题,应该问的第一个问题是-我的DOM渲染的频率,而不是我的getter调用的频率。