Angular 2“template”vs“templateUrl”问题

时间:2016-10-21 19:20:31

标签: angular routing

我正在使用RouterModule构建一个应用程序。问题是当我在我的组件装饰中使用“模板”时,一切都很好,但当我使用“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 {}

P.S。

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 个答案:

答案 0 :(得分:2)

从about.component.html

中删除<about-block></about-block>

由于html模板中的about-block标记,它会递归。因此,您将收到超出最大调用堆栈大小的错误。