Angular public 服务
Angular public service
我想将来自服务的值用于我的 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) {}
}
这是一个基本的封装问题https://en.wikipedia.org/wiki/Encapsulation_(computer_programming)。最佳做法是将服务设置为私有,因为每个模块都有一个角色:
- 服务提供实用程序功能
- 组件使用服务来执行操作
您还可以查看此主题以获取更多信息:
我想将来自服务的值用于我的 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) {}
}
这是一个基本的封装问题https://en.wikipedia.org/wiki/Encapsulation_(computer_programming)。最佳做法是将服务设置为私有,因为每个模块都有一个角色:
- 服务提供实用程序功能
- 组件使用服务来执行操作
您还可以查看此主题以获取更多信息: