未捕获的错误:没有为组件 MyApp 指定模板

Posted

技术标签:

【中文标题】未捕获的错误:没有为组件 MyApp 指定模板【英文标题】:Uncaught Error: No template specified for component MyApp 【发布时间】:2017-02-17 14:25:42 【问题描述】:

我正在尝试将我的 ionic 2 Beta 2 代码更新为 ionic 2 RC0,并在我的 app.component.ts 文件中收到 No template specified 错误。

app.component.ts 文件的相关部分如下所示:

@Component(
    templateUrl: 'app.html',
)

export class MyApp 
    rootPage: any = HomePage;
    loggedIn:boolean = false;

    @ViewChild(Nav) nav: Nav;

    root: any;// = HomePage;


    constructor() 
        ...
    

根据更新应用程序以发布 ionic 2 的候选版本 0 的更新说明,app.html 文件与 app.component.ts 文件位于同一目录中,路径为 app.html

在运行 ionic 应用时,Firefox 和 Chrome 都抱怨没有为 app.component 指定模板。

【问题讨论】:

【参考方案1】:

通俗地说,在您的 component.ts 文件中添加 templateURL。按照代码sn-p如下:-

@Component(
  selector: 'app-securelogin-receiver',
  templateUrl: './securelogin-receiver.component.html',
  providers: [SecureloginService]
)

在组件加载时被引用,因此它的不可用会引发异常。

错误:没有为组件指定模板 SecureloginReceiverComponent

除了我在 templateURL 缺席时遇到的异常。

【讨论】:

【参考方案2】:

我遇到了同样的问题,原因是注释行。即使您的示例中没有包含注释行,我也建议您使用该答案(我认为您没有想到注释行会导致错误)。以下产生了与您相同的错误:

@Component(
    //template: `<ion-nav [root]="rootPage"></ion-nav>`  
    templateUrl: 'app.html'
)

我必须进行以下更改才能使编译工作(使用ionic-app-scripts@0.0.30时,我感觉问题出现在v0.0.23和v0.0.30之间,但我没有调查) :

@Component(
  templateUrl: 'app.html'
  //template: `<ion-nav [root]="rootPage"></ion-nav>`
)

【讨论】:

谢谢,你到底是怎么想出来的?所以它只出现在 Ionic 中吗? - Angular 应用不受此影响? 我偶然解决了这个问题,但我花了一两个小时才弄清楚:-)。我不知道 Angular 2 应用程序是否存在类似问题,因为我只测试了 Ionic 2 应用程序。由于我认为问题来自 ionic-app-script,我只能建议保持更新。 Ionic 团队在过去几周对其进行了很多改进,但我没有机会对其进行测试以检查问题是否仍然存在。 Angular 2 中存在同样的错误,删除注释清除错误。 2018 年 3 月 28 日,我刚刚遇到了这个 :( 错误,我正在使用 ionic 3,我追了 3 个小时,为什么我的页面特定上下文菜单按钮没有出现在这个项目中。猜猜我用的是什么模板:所以我把它注释掉,瞧我又遇到了 4 小时的噩梦错误。

以上是关于未捕获的错误:没有为组件 MyApp 指定模板的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2 测试组件给出“错误:未捕获(承诺):错误:模板解析错误”

未捕获的错误:元素类型无效:预期为字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象

未捕获的错误:模板解析错误:'mat-label' 不是已知元素:

VueJS 3 + Laravel:未捕获的类型错误:无法读取未定义的属性“组件”

未捕获的引用错误:应用引导模板后未定义 $

未捕获的错误:模板解析错误:无法绑定到“ngModel”,因为它不是“输入”的已知属性