Проблема в том, что когда я запускаю свое приложение, оно работает нормально. Но когда я его обновляю, в большинстве случаев я получаю сообщение ниже msg.
Селектор my-app не соответствует ни одному элементу
Но странно то, что много раз, когда я обновляю свое приложение, оно тоже работает.
Итак, в конечном итоге у меня странное поведение моего приложения, и я не могу этого понять.
Иногда работает, иногда нет ...
Любое предложение, не могу придумать код ???
Примечание: у меня пока нет сложной структуры или компонентов, но есть простая реализация.
my-app
компонент.Potentially unhandled rejection [2] The selector "micropuppy-app" did not match any elements
и FF- 'ИСКЛЮЧЕНИЕ: селектор my-app не соответствует ни одному элементу BaseException @ cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.7/… ... .. ... ... .. и продолжаем »Ответы:
Это случилось со мной, потому что я импортировал свой код в
head
тег, поэтому он потенциально работал и пытался выполнить загрузку до того, как DOM была готова.Вы можете переместить сценарий в конец
body
тега или поместить код начальной загрузки в прослушиватель событий:или:
источник
main.js
документации по машинописному тексту нет включения сценария в демонстрационные примеры plunker. Хотя у меня есть ошибка.window.onload = function(){ platformBrowserDynamic().bootstrapModule(AppModule); }
Угловая 4: мне пришлось изменить
<app-root></app-root>
с<my-app></my-app>
в файл index.htmlисточник
angular-cli
созданиемapp-root
ссылки вindex.html
файле, в то время как ts-файл точки входа учебника Tour of Heroes ссылается наmy-app
. ИМО, эти двое должны использовать одно и то же соглашение об именах, так как команда Angular рекомендовалаangular-cli
как лучший способ создания проекта.Дела, которые необходимо сделать:
Проверьте, есть ли у вас часть " boostrap :" - если нет, добавьте:
bootstrap: [AppComponent]
// где AppComponent - ваш основной компонентПроверьте, работает ли он сейчас, если нет - перейдите в AppComponent и проверьте свой селектор . Он должен быть таким же, как теги в теле в index.html.
поэтому index.html должен содержать что-то вроде этого:
где вместо
<app-root>
вы должны использовать селектор из основного AppComponentисточник
<body>
тег исправил этоУ меня такая же проблема, когда я использую Angular Universal. Но это потому , что я использую
BrowserModule
в main.node.ts , решениеИ проверьте здесь, чтобы получить дополнительную информацию: https://github.com/angular/universal/issues/542
источник
Если вы используете основной шаблон angular2 / asp.net отсюда: http://blog.stevensanderson.com/2016/10/04/angular2-template-for-visual-studio/, вы можете заменить последние несколько строк boot-client.ts со следующими подсказками (и позволяет избежать множества пугающих ошибок консоли, когда HMR перезагружает вашу страницу):
источник
Я обновлял приложение Angular 5.2 до Angular 6.1 и столкнулся с аналогичной проблемой. В данном случае проблема заключалась в том, что файла index.html вообще не было
<body>
. Вместо этого он был включен вmy-app
компонент.Раньше это работало с Angular 5.2 (и более ранними версиями тоже), потому что в сгенерированном index.html теги скрипта были помещены в конец. После обновления до 6.1 теги сценария были вместо этого помещены в начало файла (и поэтому я предполагаю, что они выполняются до того,
<my-app></my-app>
как фактически присутствует корневой элемент.Решением было перейти
<body>
в index.html . (Первоначально он был помещен в компонент, потому что кто-то хотел применить условные классы к элементу тела с помощьюngClass
.)источник
Ни один из приведенных выше ответов не решил мою проблему. Вот как решить такую же ошибку. У вас не должно быть более одного компонента в качестве компонента Bootstarp. Итак, массив Bootstrap должен иметь только один компонент. По ошибке я поместил 4 компонента в массив начальной загрузки. Я удалил эти 4 компонента оттуда и поместил в массив entryComponents (как показано в код ниже). Это мне помогло.
источник
Может быть, вы могли бы использовать
Пометьте в заголовках js-файлы.
http://www.w3schools.com/TAgs/att_script_defer.asp
источник
Это случилось со мной, когда я изменил компонент начальной загрузки с
AppComponent
на новый компонент. Когда вы его меняете, вам нужно изменить его и в основномindex.html
.index.html
должен содержать компонент начальной загрузки.Например, если вы измените
app-component
кapp-login
вapp.module.ts
в разделе начальной загрузки , то Вам следует обновить ,index.html
как этоисточник
Когда я создаю новый компонент, необходимо выполнить следующие шаги, чтобы решить указанные ниже проблемы.
Шаг 1 - Создайте новый компонент с помощью
ng g c lakshya
. Шаг-2 - Под приложением создается фолфер из 4 файлов. Шаг-3- Index.html необходимость<app-root></app-root>
в<app-lakshya></app-lakshya>
стадии начальной загрузки 4- app.Module.ts изменения файла: [AppComponent] для начальной загрузки: [LakshyaComponent]так что устраните ошибку выше.
источник
Django + Angular
У меня был собственный index.html, а не тот, который сгенерировал angular CLI.
У меня была эта ошибка, потому что я поместил сгенерированные файлы сценария в
<head>
раздел, а не в конец закрывающего</body>
тега (после<app-root></app-root>
тегов)источник
В вашем app.module.ts, если у вас есть my-app в начальной загрузке, прокомментируйте или удалите его.
bootstrap: [AppComponent, // my-app]
источник