Доступ к данным DOM из консоли браузера в Angular 15 (при этом __ngContext__ больше не хранит их)

Я написал расширение для Chrome, чтобы добавить некоторые функции на сторонний веб-сайт, написанный на Angular. Чтобы прочитать значения (например, из текстовых полей), мой код javascript выберет элемент DOM и прочитает свойство ngContext для извлечения значений:

      function getSubmissionDataFromMemory() {
    var submission = undefined;
    document.querySelector("app-submission").__ngContext__.forEach(function(contextItem) {
        if (contextItem != undefined && contextItem[0]) {
            if (contextItem[0].nodeName == "APP-SUBMISSION") {
                return contextItem.forEach(function(nodeCtxItem) {
                    if (nodeCtxItem && nodeCtxItem.code != undefined) {
                        submission = nodeCtxItem;
                    }
                });
            }
        }
    });
    return submission;
}

С переходом на Angular 15 этот код больше не работает, так как Angular теперь возвращает только идентификатор LView в свойстве ngContext .

Мой вопрос: теперь, когда ngContext возвращает только идентификатор элемента LView, как и где я могу получить доступ к этим LViews из консоли моего браузера?

  • Я попытался просмотреть другие оконные объекты, но не смог сразу найти, где они будут храниться.

1 ответ

Ты пробовалng.getInjector(ng.getComponent(####)(где####элемент соответствует вашему компоненту)?

Инжектор содержитlViewиtNode.

Другие вопросы по тегам