Visual Studio Angular和C#单页项目问题

xiozqbni  于 2023-10-23  发布在  Angular
关注(0)|答案(1)|浏览(166)

我开始在VS 2022中构建我的第一个C#/Angular项目。到目前为止我的布局是这样的

Index.html包含了带有页眉、菜单和页脚代码等的启动页面。它还有这个

  1. <main-root></main-root>

它按预期合并到main.component.html中的代码中。
这是main.component.ts

  1. import { HttpClient } from '@angular/common/http';
  2. import { Component } from '@angular/core';
  3. @Component({
  4. selector: 'main-root',
  5. templateUrl: './main.component.html'
  6. })
  7. export class MainComponent {
  8. title = 'TestPage';
  9. }

这是main.module.ts

  1. import { HttpClientModule } from '@angular/common/http';
  2. import { NgModule } from '@angular/core';
  3. import { BrowserModule } from '@angular/platform-browser';
  4. import { MainComponent } from './main.component';
  5. @NgModule({
  6. declarations: [
  7. MainComponent
  8. ],
  9. imports: [
  10. BrowserModule, HttpClientModule
  11. ],
  12. providers: [],
  13. bootstrap: [MainComponent]
  14. })
  15. export class MainModule { }

所有这些都编译和运行良好,所以我接下来要做的是当用户单击网页上的正确按钮时,main-root被替换为grid-root,并且index.html的该部分被刷新。
谁能告诉我如何做到这一点,请。
Thanks in advance
Kev

cyej8jka

cyej8jka1#

一个angular应用程序必须有一个单独的组件,在你的项目中,这个组件就是<main-root>,它托管在index.html中。你不能也不应该替换这个元素,它不会真正起作用。请记住,Angular应用程序的全部要点是在不刷新页面的情况下更改内容。
我的建议是。默认值是<app-root>元素。使用它,或者类似的东西,作为主要的 Package 元素。然后在里面,你有你的两个主要元素与逻辑来显示一个或另一个:
index.html

  1. <app-root></app-root>

然后在AppRoot组件中,您可以拥有两个“main/grid”组件,它们具有显示/隐藏逻辑或任何您需要的逻辑

  1. <app-main *ngIf="!showGrid"></app-main>
  2. <app-grid *ngIf="showGrid"></app-grid>

相关问题