angular2学习笔记 2

路由的使用:

1.确保html <head>下有<basehref="/">

2.在app.module中导入路由模块

import{RouterModule}from'@angular/router';

在NgModule中的imports数列中加入

RouterModule.forRoot([{ path:'heroes', //指定跳转到/heroes的路径后进行‘操作’

component:HeroesComponent //‘操作’为加载HeroesComponent组件 该组件应已在顶部被导入

}])

3. 在template中加入锚点<a routerLink="/heroes">

router-outlet


路由模块:

  1. import{NgModule}from'@angular/core';
  2. import{RouterModule,Routes}from'@angular/router';
  3.  
  4. import{DashboardComponent}from'./dashboard.component';
  5. import{HeroesComponent}from'./heroes.component';
  6. import{HeroDetailComponent}from'./hero-detail.component';
  7.  
  8. const routes:Routes=[
  9. { path:'', redirectTo:'/dashboard', pathMatch:'full'},
  10. { path:'dashboard', component:DashboardComponent},
  11. { path:'detail/:id', component:HeroDetailComponent},
  12. { path:'heroes', component:HeroesComponent}
  13. ];
  14.  
  15. @NgModule({
  16. imports:[RouterModule.forRoot(routes)],
  17. exports:[RouterModule]
  18. })
  19. exportclassAppRoutingModule{}
    • 将路由抽出到一个变量中。如果你将来要导出这个模块,这种 "路由模块" 的模式也会更加明确。

    • 添加RouterModule.forRoot(routes)imports

    • RouterModule添加到路由模块的exports中,以便关联模块(比如AppModule)中的组件可以访问路由模块中的声明,比如RouterLink 和 RouterOutlet

    • declarations!声明是关联模块的任务。

    • 如果有守卫服务,把它们添加到本模块的providers中(本例子中没有守卫服务)。


  20. HTTP:
  21. 在appmodule中
  22. 我们要能从本应用的任何地方访问这些服务,就要把HttpModule添加到AppModuleimports列表中。 这里同时也是我们引导应用及其根组件AppComponent的地方。
  23. 导入InMemoryWebApiModule并将其加入到模块的imports数组。
    1. import{InMemoryWebApiModule}from'angular-in-memory-web-api';
    2. import{InMemoryDataService}from'./in-memory-data.service';

    1. imports:[
    2. BrowserModule,
    3. FormsModule,
    4. HttpModule,
    5. InMemoryWebApiModule.forRoot(InMemoryDataService),
    6. AppRoutingModule
    7. ],

  24. angular-in-memory-web-api没有就用npm安装
创建文件放置需要模拟传送的data

import { InMemoryDbService } from 'angular-in-memory-web-api';
export class InMemoryDataService implements InMemoryDbService {
  createDb() {
    const heroes = [
      { id: 0,  name: 'Zero' },
      { id: 11, name: 'Mr. Nice' },
      { id: 12, name: 'Narco' },
      { id: 13, name: 'Bombasto' },
      { id: 14, name: 'Celeritas' },
      { id: 15, name: 'Magneta' },
      { id: 16, name: 'RubberMan' },
      { id: 17, name: 'Dynama' },
      { id: 18, name: 'Dr IQ' },
      { id: 19, name: 'Magma' },
      { id: 20, name: 'Tornado' }
    ];
    return {heroes};
  }
}


注入与constructor:

当 Angular 创建组件时,会首先为组件所需的服务请求一个注入器 (injector)。

注入器维护了一个服务实例的容器,存放着以前创建的实例。 如果所请求的服务实例不在容器中,注入器就会创建一个服务实例,并且添加到容器中,然后把这个服务返回给 Angular。 当所有请求的服务都被解析完并返回时,Angular 会以这些服务为参数去调用组件的构造函数。 这就是依赖注入 。


创建的服务在需要的组件中创建constructor就可以使用了





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值