angular 中使用服务

创建服务文件

model.service.ts

import { Component ,Injectable} from '@angular/core'
@Injectable(
    {providedIn:'root'}
)
export class ModelService{
    index = 0 ;
    data = [{
        name:"zhangsan"
    },{
        name:"lisi"
    },
    {
        name:"wangwu"
    }]
    constructor(){
    }
    btn(){
        this.data.push({name:"zhaoliu"+this.index})
        this.index++;
    }
}

[InjectorType]

  • ‘root’:大多数应用程序中的应用程序级注入器。
  • ‘platform’:页面上所有应用程序共享的特殊单例平台注入器。
  • ‘any’:在每个注入令牌的模块(包括惰性模块)中提供唯一的实例。

直接根模块注入

import { modelService } from './modelService ';


@NgModule({
    imports: [
        ...
    ],
    declarations: [        //生命模块内组件
        ...
    ],
    providers: [ modelService ],  // 注入服务
    bootstrap: [...]      //主界面,只有根模块可用
})
export class AppModule {
} 

组件中注入

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

@Component({
    selector: 'my-app',
    templateUrl: './app.component.html',
    styleUrls: ['./app.component.css'],
    providers: [ modelService],  // 注入服务
})
export class AppComponent {
    constructor( service: modelService) {
        
    }
}

组件中使用服务

import { Component ,Injectable} from '@angular/core'
import { ModelService} from './model.service' 
@Injectable()
@Component({
    selector: 'app-view-model',
    template: `
    <ul>
    <ng-container *ngFor = "let ov of data.data,let i=index" >
    {{i}}<li>{{ov.name}}</li>
    </ng-container>
    </ul>
    <button (click)="add()">add</button>
    `,
  })
export class  viewModelComponent{
    data
    constructor(private Service:ModelService){//如过使用private 服务 则需要接受,使用公有服务则直接可以在模板中使用
    }
    add(){
        this.Service.btn();
    }
  }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值