gpt4 book ai didi

javascript - Angular 应用程序没有渲染任何内容

转载 作者:行者123 更新时间:2023-12-03 02:46:00 26 4
gpt4 key购买 nike

这里是 Angular.io 新手(我知道 AngularJS!)。我的应用程序之前渲染过一些东西,但现在它正在编译,但什么也不渲染。

我有以下index.html文件:

<html lang="en">

<head>
<meta charset="utf-8">
<title>SumanChromeExtension</title>
<base href="/dist/">

<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>

<body>


<app-header></app-header>

<app-root></app-root>

<app-footer></app-footer>


</body>
</html>

以下 main.ts 文件:

import {enableProdMode} from '@angular/core';
import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import {AppModule} from './app.module';
import {environment} from './environments/environment';
declare var chrome;

if (environment.production) {
enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.log(err));

window.addEventListener('message', function (ev: Event) {
console.log('extension received event:', ev);
});

以下 app.module.ts 文件:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import {MatButtonModule, MatCheckboxModule} from '@angular/material';
import { AppHeader } from './app/header/header.component';
import { AppComponent } from './app/pages/home/app.component';


@NgModule({
declarations: [
AppHeader,
AppComponent
],
imports: [
MatButtonModule,
MatCheckboxModule,
BrowserModule,
BrowserAnimationsModule,
],
providers: [],
bootstrap: [
AppHeader,
AppComponent
]
})



export class AppModule { }

app.component.ts 看起来像:

import {Component} from '@angular/core';

declare var chrome;

@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})

export class AppComponent {
title = 'Suman Test Generator';

constructor() {
console.log('constructor was called.');
}

}

header.component.ts 看起来像:

import {Component} from '@angular/core';

declare var chrome;

@Component({
selector: 'app-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.css']
})

export class AppHeader {
title = 'Suman Test Generator 4';

constructor() {
console.log('constructor was called.');
}
}

它之前渲染过东西,但现在渲染的 html 看起来像:

enter image description here

所以什么也没有被渲染。我确信这是一个简单的问题,有人知道吗?就像我说的,它正在构建,没有任何错误,所以。

实际上我检查了控制台,发现了以下错误:

compiler.js:24660 Uncaught Error: Template parse errors:
Can't bind to 'mdMenuTriggerFor' since it isn't a known property of 'button'. ("
<span>App Name</span>
<span class="example-spacer"></span>
<button md-button [ERROR ->][mdMenuTriggerFor]="appMenu">
<md-icon>menu</md-icon>
Menu
"): ng:///AppModule/AppHeader.html@6:22
'md-icon' is not a known element:
1. If 'md-icon' is an Angular component, then verify that it is part of this module.
2. If 'md-icon' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("
<span class="example-spacer"></span>
<button md-button [mdMenuTriggerFor]="appMenu">
[ERROR ->]<md-icon>menu</md-icon>
Menu
</button>
"): ng:///AppModule/AppHeader.html@7:6
'md-toolbar' is not a known element:
1. If 'md-toolbar' is an Angular component, then verify that it is part of this module.
2. If 'md-toolbar' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("
<div>

[ERROR ->]<md-toolbar color="primary">
<span>App Name</span>
<span class="example-spacer"></span>
"): ng:///AppModule/AppHeader.html@3:2
There is no directive with "exportAs" set to "mdMenu" ("
</button>
</md-toolbar>
<md-menu [ERROR ->]#appMenu="mdMenu">
<button md-menu-item> Settings</button>
<button md-menu-item> Contact</but"): ng:///AppModule/AppHeader.html@11:11
'md-menu' is not a known element:
1. If 'md-menu' is an Angular component, then verify that it is part of this module.
2. If 'md-menu' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("
</button>
</md-toolbar>
[ERROR ->]<md-menu #appMenu="mdMenu">
<button md-menu-item> Settings</button>
<button md-menu-item> Con"): ng:///AppModule/AppHeader.html@11:2
at syntaxError (compiler.js:485)
at TemplateParser.webpackJsonp.../../../compiler/esm5/compiler.js.TemplateParser.parse (compiler.js:24660)
at JitCompiler.webpackJsonp.../../../compiler/esm5/compiler.js.JitCompiler._parseTemplate (compiler.js:34471)
at JitCompiler.webpackJsonp.../../../compiler/esm5/compiler.js.JitCompiler._compileTemplate (compiler.js:34446)
at compiler.js:34347
at Set.forEach (<anonymous>)
at JitCompiler.webpackJsonp.../../../compiler/esm5/compiler.js.JitCompiler._compileComponents (compiler.js:34347)
at compiler.js:34217
at Object.then (compiler.js:474)
at JitCompiler.webpackJsonp.../../../compiler/esm5/compiler.js.JitCompiler._compileModuleAndComponents (compiler.js:34216)

最佳答案

第一个问题是一切都需要在 app-root 的范围内。您的所有组件和模块都必须是 root 的子级。您需要将组件包含在 app.module.ts 中,并且需要在 app.component.html 中提供 DOM 元素。下一个问题是 md 不久前被 mat 取代,因此您在 html 中使用了过时的 Material 项。

如果您想在项目中使用 Angular - Material,这里有一个使用 Angular 5、Material 2 和 Flex-Layout 的 github 存储库:https://github.com/zbagley/ngx-flex-material-template 。它还具有单独的页眉、正文和页脚作为包含的组件,其方式与您希望实现它们的方式类似。

关于javascript - Angular 应用程序没有渲染任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48087435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com