Доступ к данным 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
.