Очистить / удалить использование зависимостей переменных службы Angular App от компонентов приложения - PullRequest
0 голосов
/ 02 февраля 2019

У меня есть одностраничное приложение (SPA) Angular7, настроенное на Angular cli.Это большое приложение с различными по-разному Angular Services, включая глобальный и компонентный уровни.

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

Поэтому, пожалуйста, предложитеи направьте меня, чтобы удалить не менее 50 процентов использования служебных переменных внутри компонента.Например, см. Ниже код служебной переменной с использованием внутреннего компонента.

Но здесь я столкнулся с проблемой, что каждая служба имеет более чем ручные переменные открытых переменных. И эти общедоступные переменные уровня Службы объявили переменную, также использующую в разных компонентах. И также переменныев одном компоненте, имеющем значение, а в другом компоненте значение становится неопределенным, если я пойду с маршрутизацией приложения.

Любой другой лучший подход, который я могу использовать вместо объявления служебной переменной и доступа к внутренним компонентам.

Пожалуйста, помогите.

AppService.ts

@Injectable({
  providedIn: 'root'
})

export class AppService {

public isApplicationInitialized=false;
..
...

}

app.component.ts

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

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})

export class AppComponent {

  title = 'App';

  constructor(public appService:AppService){
  this.appService.isApplicationInitialized=true;
  ...
  ..
  }  

}

1 Ответ

0 голосов
/ 02 февраля 2019

Сервисы Angular являются очень мощным инструментом.Они позволяют вам вводить зависимости в компоненты или другие сервисы (сервис зависит от другого сервиса).

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

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

настройки провайдеров (в объявлении AppModule или Components)) может дополнительно настроить способ ввода и использования ваших услуг.

Сказав это, вы можете злоупотребить этим параметром и плохо структурировать свое приложение, что приведет к громоздкому кодированию и множеству ненужных служб.

Мое предложениесначала вы должны увидеть «общую картину» вашего проекта, а затем структурировать его в соответствии с областями данных, чтобы было понятнее, где расположены все данные и какая служба отвечает за них.Очень часто можно увидеть конструктор компонента с множеством зависимостей, не расстраивайтесь из-за этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...