4)运行应用程序

现在使用命令 'ng serve'运行应用程序并检查 'http://localhost:4200/'的输出。

Angular 服务
欢迎来到之路教程(on itroad-com)

示例

1)作为“全局服务”注入

要作为全局服务注入,请将服务注入根模块。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { CalcService } from './service/calc.service';
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [CalcService],
  bootstrap: [AppComponent]
})
export class AppModule { }

全局服务与本地服务注入

要注入服务,我们有两种选择。

如何创建Angular服务

在所需位置创建一个新文件 calc.service.ts并将以下代码放入其中。
CalcService是服务名称。

import { Injectable } from '@angular/core';
@Injectable({
  providedIn: 'root'
})
export class CalcService {
  constructor() { }
}

上述服务非常完整,可以在应用程序组件中使用。

使用 Angular CLI

如果我们使用 Angular CLI,创建服务很容易。
它只是一个完成所有工作的命令。
它会像上面的例子一样生成服务代码。

$ ng g s service/calc --flat 
//Other useful options
--force  = override
--spec=false = dont generate spec file
--dry-run = dont touch code if it has been updated already.

3) 更新视图 HTML

现在最后,使用新添加的模型属性 sum更新视图 html文件。

<h1>
	Welcome to {{ title }}!
	Sum is {{sum}}
</h1>

2) 将服务导入到组件中并使用更新模型的方法

我创建了一个新的模型属性 'sum',我们将使用服务方法 add()的返回值更新它。

import { Component } from '@angular/core';
import { CalcService } from './service/calc.service';
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app';
  sum: number = 0;
  constructor(calc:CalcService){
    this.sum = calc.add(1,2,3,4);
  }
}

2)作为“本地服务”注入

要作为本地服务注入,直接将服务注入到组件中。

import { Component } from '@angular/core';
import { CalcService } from './service/calc.service';
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css'],
  providers: [CalcService]
})
export class AppComponent {
  title = 'app';
  constructor(calc:CalcService){
   	//Use calc
  }
}

1) 为服务添加方法

为了演示 CalcService的用法,让我们在 service 中定义一个新方法并在 app.component.ts中使用它。

我添加了方法 add(),它将 REST 参数作为数字数组。
然后将所有数字相加并返回总和。

import { Injectable } from '@angular/core';
@Injectable({
  providedIn: 'root'
})
export class CalcService {
  constructor() { }
  public add(...params: number[]): number {
    let result = 0;
    for (let val of params) {
        result += val;
    }
    return result;
  }
}
日期:2020-09-17 00:09:15 来源:oir作者:oir