Селектор «app-root» не соответствует ни одному элементу после обновления до Angular 7 - PullRequest
1 голос
/ 26 апреля 2019

После обновления клиентского приложения SPA-проекта ASP.Net Core MVC с Angular 5.2 на Angular 7 я получаю следующую ошибку времени выполнения при загрузке приложения с index.html:

селектор "app-root" не соответствует ни одному элементу

    at DefaultDomRenderer2.push../node_modules/@angular/platform-browser/fesm5/platform-browser.js.DefaultDomRenderer2.selectRootElement (VM147 vendor.js:76470)
    at DebugRenderer2.push../node_modules/@angular/core/fesm5/core.js.DebugRenderer2.selectRootElement (VM147 vendor.js:67815)
    at createElement (VM147 vendor.js:64501)
    at createViewNodes (VM147 vendor.js:66739)
    at createRootView (VM147 vendor.js:66692)
    at callWithDebugContext (VM147 vendor.js:67700)
    at Object.debugCreateRootView [as createRootView] (VM147 vendor.js:67210)
    at ComponentFactory_.push../node_modules/@angular/core/fesm5/core.js.ComponentFactory_.create (VM147 vendor.js:65031)
    at ComponentFactoryBoundToModule.push../node_modules/@angular/core/fesm5/core.js.ComponentFactoryBoundToModule.create (VM147 vendor.js:53458)
    at ApplicationRef.push../node_modules/@angular/core/fesm5/core.js.ApplicationRef.bootstrap (VM147 vendor.js:61611)

Проблемы, похоже, заключаются в том, что сценарии выполняются до инициализации DOM, таким образом, не находя элемент.«Скомпилированный» источник index.html выглядит следующим образом:

<script type="text/javascript" src="runtime.js"></script><script type="text/javascript" src="polyfills.js"></script><script type="text/javascript" src="styles.js"></script><script type="text/javascript" src="vendor.js"></script><script type="text/javascript" src="main.js"></script><!doctype html>
<html lang="en">

<head>
  <base href="/">
  <meta charset="utf-8">
  <title>capatrello</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<app-root>Loading...</app-root>

</html>

Файлы сценариев автоматически вставляются в начале файла.Если я вручную вставлю сценарии в конец файла, приложение запустится и будет работать как положено.Однако сценарии затем вставляются и выполняются дважды, по-прежнему выдавая ошибки с первой попытки.Скомпилированный index.html:

<script type="text/javascript" src="runtime.js"></script><script type="text/javascript" src="polyfills.js"></script><script type="text/javascript" src="styles.js"></script><script type="text/javascript" src="vendor.js"></script><script type="text/javascript" src="main.js"></script><!doctype html>
<html lang="en">

<head>
  <base href="/">
  <meta charset="utf-8">
  <title>capatrello</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<app-root>Loading...</app-root>

</html>
<script type="text/javascript" src="runtime.js"></script>
<script type="text/javascript" src="polyfills.js"></script>
<script type="text/javascript" src="styles.js"></script>
<script type="text/javascript" src="vendor.js"></script>
<script type="text/javascript" src="main.js"></script>
  • По какому механизму файлы сценариев вставляются в index.html?
  • Может ли он быть настроен на вставку файлов сценариев в конец index.html?
  • Это правильное исправление или причина в другом месте?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...