#angular #routing
#angular #маршруты
Вопрос:
Я создаю приложение, используя RouterModule. Проблема в том, что когда я использую «template» в оформлении моего компонента, все работает отлично, но когда я использую вместо этого «templateUrl», приложение начинает давать сбои
Ошибки консоли: не перехвачены (в обещании): Ошибка: Ошибка в app / about.component.html: 1:30, вызванная: превышен максимальный размер стека вызовов
Просто не знаю, какие файлы могут быть полезны, потому что кажется, что проблемы там нет.
Не работает должным образом
import { Component } from '@angular/core';
@Component({
selector: 'about-block',
templateUrl: 'app/about.component.html'
})
export class AboutComponent {}
Работает должным образом
import { Component } from '@angular/core';
@Component({
selector: 'about-block',
template: '<h1>This is About section</h1>'
})
export class AboutComponent {}
Постскриптум
app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser'
import { AppComponent } from './app.component';
import { AppRoutingModule, routingComponents} from './app.routing';
@NgModule({
imports: [ BrowserModule, AppRoutingModule ],
declarations: [ AppComponent, routingComponents ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
about.component.html
<about-block>
</about-block>
Комментарии:
1. проблема, вероятно, не здесь, в файле app.module.ts.
2. Я не уверен, но где-то у вас есть ошибка
comma
илиdot
.3. @micronyks добавил файл app.module.ts, пожалуйста, взгляните
4. Здесь у вас нет никакой ошибки. где-то в приложении у вас есть небольшая ошибка, которая вызывает эту проблему. Вы должны разобраться в этом, поскольку это сложно сказать. Я просто дал вам подсказку. Вот и все.
5. @AlexandrBelov Это может быть проблемой с
about.component.html
не могли бы вы, пожалуйста, поделиться своим about.component.html ?
Ответ №1:
Удалить <about-block></about-block>
из about.component.html
Из-за вашего about-block
тега в html-шаблоне он становится рекурсивным. Следовательно, вы получаете ошибку превышения максимального размера стека вызовов.
Комментарии:
1. Не могли бы вы, пожалуйста, немного объяснить, если я удалю тег ‘about-block’ из .html, тогда что будет делать селектор ‘about-block’? Я имею в виду, где находится элемент DOM с тегом ‘about-block’, который должен быть контейнером для моего шаблона на странице?
2. Вы можете добавить html в свой html-шаблон следующим образом-
<h1>This is About section</h1>
3. Да, я понимаю это, я просто понятия не имею, что делает селектор в оформлении компонентов, потому что нет тега ‘about-block’, поэтому получается абстрактное имя без какой-либо ссылки на реальный DOM.
4. селектор предназначен для добавления этого компонента внутри другого компонента. Поскольку вы добавляете <about-block></about-block> в тот же компонент, это происходило следующим образом —
<about-block><about-block><about-block>....</about-block></about-block></about-block>
Как только закончится память, это выдаст ошибку.