簡體   English   中英

提供Angular 7服務:'root'

[英]Angular 7 Service providedIn: 'root'

我對角度開發很新,所以如果這是一個非常基本的問題,請原諒我

但我有一個購物車服務,我目前只有一個簡單的控制台日志功能

 import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root' }) export class CartService { constructor( ) {} public addItem() { console.log('Hello'); } } 

基本上我無法弄清楚如何在我安裝的NG模塊中使用此服務,我已成功通過構造函數在其他組件中使用它,但ngmodule沒有這個?

通過使用在角度6中添加的providedIn:'root'標簽,我得到了它在app-module級別的單例

但只是無法弄清楚如何調用cartService.addItem()?

謝謝,如果有人可以幫助!

您可以像這樣使用依賴注入來調用服務

export class AppComponent {
  constructor(private cartService: CartService) {

  }

  doSomething() {
     this.cartService.addItem();
  }
}

以下是如何在組件中使用服務的示例代碼:

Component.ts

import { Component, OnInit} from '@angular/core';
import { yourSeerviceName } from "PATH_TO_SERVICE";
@Component({
    selector: 'app-dummy',
    styleUrls: ['dummy.component.sass'],
    templateUrl: 'dummy.component.html'
})


export class yourComponent implements OnInit {
    // you can provide any name for variable it's upto you
    constructor(private dummyService:yourSeerviceName) {

    }

    //access the method in you'r service by performing below action.
    this.dummyService.yourMethod();
}

如果您創建了一個新模塊,則需要將該服務引入模塊,方法是轉到.module.ts文件並將服務添加到providers數組中。 它將是這樣的:

providers: [
    CartService
  ],

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM