Angular data 3

路由

1、命令新建 router项目 加参数 --routing

ng new router --routing
image.pn
image.png

实例

在app-routing.module.ts中引入Home 和Product 两个组件的路由


import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import {HomeComponent} from "./home/home.component";
import {ProductComponent} from "./product/product.component";

const routes: Routes = [
  {path:'',component:HomeComponent},//配置默认路由
  {path:'product',component:ProductComponent},
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }


配置404组件 (通配符路由设置)

完整代码

app-routing.module.ts代码

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import {HomeComponent} from "./home/home.component";
import {ProductComponent} from "./product/product.component";
import {Code404Component} from "./code404/code404.component";

const routes: Routes = [
  {path:'',component:HomeComponent},
  {path:'product',component:ProductComponent},

  /* 路由配 通配符路由通常放最后面 */
  {path:'**',component:Code404Component},
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

app.module.ts代码

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { HomeComponent } from './home/home.component';
import { ProductComponent } from './product/product.component';
import { Code404Component } from './code404/code404.component';

@NgModule({
  declarations: [
    AppComponent,
    HomeComponent,
    ProductComponent,
    Code404Component
  ],
  imports: [
    BrowserModule,
    AppRoutingModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

app.component.ts 代码(父组件)

import {Component} from '@angular/core';
import {Router} from "@angular/router";

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


  /*通过构造方法拿到 router对象 */

  constructor(private router: Router) {

  }

  toProductDetails() {
    /* 通过控制器的navigate方法来路由到product组件上面 */
    this.router.navigate(['/product']);
  }


}

app.component.html 父模板代码

<a [routerLink]="['/']">主页</a>
<a [routerLink]="['/product']">商品详情</a>
<input type="button" value="商品详情" (click)="toProductDetails()">
<!--  / 开头的叫根路由   ./ 开头的是子路由 -->
<!--  routerLink [] 里面可以传参数 -->
<!-- (click) 括号里面的是Angular的事件绑定用法  绑定到 组件控制器中的toProductDetails方法 -->

<!-- 路由暂位符号 -->
<router-outlet></router-outlet>

product.component.html 子组件模板之一代码

<p>
  这是一个商品组件
</p>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一节:初识Angular-CLI第二节:登录组件的构建第三节:建立一个待办事项应用第四节:进化!模块化你的应用第...
    接灰的电子产品阅读 13,727评论 64 25
  • 作者:王芃 wpcfan@gmail.com 第一节:初识Angular-CLI第二节:登录组件的构建第三节:建立...
    接灰的电子产品阅读 18,414评论 60 44
  • 路由:根据不同地址加载不同组件,实现单页面应用 # 1 路由基础知识 ================= 在ang...
    __凌阅读 709评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • 预 (ahead-of-time, AoT) 编译 在打包项目的时候提前编译好应用,打包好之后可以直接启动,而不是...
    莫莫莫I阅读 644评论 0 8