Как получить доступ к методу в угловом представлении без результирующих нескольких вызовов? - PullRequest
0 голосов
/ 19 октября 2018
   <ng-container *ngFor="let child of root.getChildren()">
   <ng-container id="prefix" *ngIf="hasPrefix(child)">
   {{getPrefix(child)}}
   </ng-container>
   </ng-container>

Я только учусь на угловой.У меня нет большого опыта работы с ангуляром.Пожалуйста, не стесняйтесь исправлять меня, если я ошибаюсь.

У меня есть древовидная структура данных, где я должен пройти через дерево и распечатать префикс дочерних узлов.Но приставка является частной собственностью.Какова лучшая практика в угловом доступе к частным свойствам в компоненте представления?Приведенный выше код приводит к нескольким вызовам методов, поскольку во время рекурсии будет обнаружено изменение.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Если я правильно вас понимаю, вы получаете доступ к некоторым частным полям с помощью общедоступного метода получения.Это нормально и не проблема.Да, это вызывает некоторые накладные расходы, потому что getter вызывает, но вы не должны беспокоиться об этом прямо сейчас.Причина этого в том, что манипуляции с DOM (которые также случаются очень часто) намного дороже, и эти издержки будут очень малы.

Итак, этот код в порядке:

class MyController {
    private _model: object;
    public get name() {return this._model.name;}
}

И если вы столкнетесь с проблемой производительности, первый вопрос должен быть задан - как часто рендерится мой DOM, а не как часто вызывается мой геттер.

0 голосов
/ 19 октября 2018

В идеале вы не должны использовать ваши личные свойства вне контроллера.Если вы хотите использовать их в поле зрения, можете объявить их общедоступными.

...