我希望在HTML中使用来自服务的值。
import { Injectable } from '@angular/core';
@Injectable()
export class DataService {
foo = 'Foo';
}我发现的大多数示例都使用私有服务。
import { Component } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'my-app',
template: '{{foo}}',
})
export class AppComponent {
get foo() { return this.dataService.foo; }
constructor(private dataService: DataService) {}
}我想知道为什么不将服务声明为Public以避免getter
import { Component } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'my-app',
template: '{{dataService.foo}}',
})
export class AppComponent {
constructor(public dataService: DataService) {}
}发布于 2022-03-06 10:33:26
这是一个基本的封装问题,https://en.wikipedia.org/wiki/Encapsulation_(computer_programming)。最佳做法是将服务设置为私有的,因为每个模块都有一个角色:
functions
操作
还可以查看此主题以获得更多信息:Typescript dependency injection public vs private
https://stackoverflow.com/questions/71368659
复制相似问题