Когда использовать @Injectable () и ClassProvider, без которых можно добиться того же результата - PullRequest
0 голосов
/ 13 июля 2020

Рассмотрим следующие коды:


import 'package:angular/angular.dart';

class AService {
  String status = 'None';
}

@Component(
  selector: 'comp1',
  template: '''
    <div>Comp1: {{service.status}}</div>
    <comp2></comp2>
    ''',
  directives: [Comp2],
  providers: [AService],
)
class Comp1 implements OnInit {
  AService service;
  Comp1(this.service);

  @override
  void ngOnInit() {
    this.service.status = "OK";
  }
}

@Component(selector: 'comp2', template: '''
  <div>Comp2: {{service.status}}</div>
  <button (click)="service.status='check'">change status</button>
  ''')
class Comp2 {
  AService service;
  Comp2(this.service);
}

Моя цель - создать одноэлементную службу, статус которой можно разделить между компонентами. Эта цель достигается без использования @Injectable или ClassProvider. Пожалуйста, помогите мне понять основы.

...