首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角质公共服务

角质公共服务
EN

Stack Overflow用户
提问于 2022-03-06 08:12:52
回答 1查看 238关注 0票数 0

我希望在HTML中使用来自服务的值。

代码语言:javascript
复制
import { Injectable } from '@angular/core';
@Injectable()
export class DataService {
  foo =  'Foo';
}

我发现的大多数示例都使用私有服务。

代码语言:javascript
复制
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

代码语言:javascript
复制
import { Component } from '@angular/core';
import { DataService } from './data.service';

@Component({
  selector: 'my-app',
  template: '{{dataService.foo}}',
})

export class AppComponent {
  constructor(public dataService: DataService) {}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-06 10:33:26

这是一个基本的封装问题,https://en.wikipedia.org/wiki/Encapsulation_(computer_programming)。最佳做法是将服务设置为私有的,因为每个模块都有一个角色:

functions

  • Component使用
  • 服务执行

操作

还可以查看此主题以获得更多信息:Typescript dependency injection public vs private

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71368659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档