Services

Service - это широкая категория, охватывающая любые значения, функции или фичи, которые необходимы вашему приложению.

Service обычно представляет собой класс с узкой, четко определенной целью. Он должен делать что-то конкретное и делать это хорошо.

Примеры предназначения сервисов:

  • logging service
  • data service
  • message bus
  • tax calculator
  • application configuration

Пример логер сервиса:

export class LoggerService {
  log(msg: any)   { console.log(msg); }
  error(msg: any) { console.error(msg); }
  warn(msg: any)  { console.warn(msg); }
}

Классы компонентов должны быть закрытыми ящиками. Они не получают данные с сервера, не проверяют введенные пользователем данные и не записываются непосредственно на консоль. Они делегируют такие задачи сервисами.

Рассказать какую логику писать в сервисах. Сделать сервис со списком TODO

 export class DataService{

    private _data: Todo[] = [
        { title: "Todo 1"},
        { title: "Todo 2"},
        { title: "Todo 2"}
    ];
    getData() {         
        return this._data;
    }
    addData(title: string){         
        this.data.push({title});
    }
}

В сервисе определен массив данных и методы для работы с ним. В реальном приложении эти данные можно получать с сервера или из какого-либо внешнего хранилища.
Как же теперь работать с этим сервисом в компоненте?

Чтобы задействовать сервис в компоненте, его надо импортировать:

import {DataService} from './data.service';

Также необходимо его добавить в коллекцию providersкомпонента:

providers: [DataService]

Все используемые сервисы должны быть определены в коллекции providers. И после этого мы сможем задействовать встроенный в Angular механизм dependency injection и получить объект сервиса в конструкторе компонента и затем использовать по необходимости:

constructor(private dataService: DataService){}

results matching ""

    No results matching ""