繁体   English   中英

角度组件和助手服务或助手类

[英]angular component and helper service or helper class

我是角度5的新手。

我正在尝试构建具有很多逻辑的组件,该组件为可以在HTML中显示的数据做准备。

据我所知-这个逻辑应该从部件为了不触发更改跟踪移动到其他地方(因为它说, 这里的风格指南)

我这个其他地方应该是服务班或助手班吗? 如果提供服务,是否应将其添加到该组件的组件模块的“提供者”或组件本身的“提供者”?

@Component({
    selector: 'filters-bar',
    templateUrl: './filters-bar.component.html',
    styleUrls: ['./filters-bar.component.scss'],
    providers:[FiltersFromQueryService]
})

谢谢

如果该类仅在一个组件中使用,则将其用作普通类(帮助类或我称为“查看对象”)。 您不能将它们注入组件中,但是可以在每次初始化时创建新实例: this.viewObject = new ViewObject();

如果在多个组件中使用它,则应将其投入使用,以便可以将其注入多个组件中(仅初始化一次,单例)。

提供程序通常是单调对象。

当用@Injectable()注释时,这是:

@Component({})
class Cmp {
  constructor() {
    this.yourService= new YourService(...);
  }
}

...可以这样写:

@Component({
  ..
  providers: [YourService]
})

...或像这样:

@Component({})
class Cmp {
  constructor(private yourService: YourService ) {
  }
}

是否单身

您提供多少个注入对象确定将创建多少个实例(仅在实际请求时实例化)。

如果您要为整个应用程序使用一个实例,则在根组件处(或使用bootstrap(AppComponent,[...])仅提供一次可注入的操作,这将导致相同的行为。

如果要为每个组件A提供一个新实例,则将其添加到组件A的提供程序中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM