为什么angular的依赖注入需要私有或公共工作?

第177节

我注意到,如果没有使用显式范围定义进行注入,则角度类将无法识别注入的服务。

以下代码不起作用

constructor(router: Router) {}

但是这个确实。

constructor(private router: Router) {}

谁能解释为什么?我相信,如果您未明确编写属性的作用域定义,则默认情况下它是公共的,就像类属性一样,但此处似乎并非如此。

波尔·克鲁伊特

您在构造函数中定义的任何内容都将作为参数。TypeScript可以为它附加访问器是很方便的。例如:

constructor(private router: Router) {}

是ES6的简写:

constructor(router) {
  this.router = router;
}

但是,如果执行以下操作,则依赖项注入仍然有效:

constructor(router: Router) {
  // router only available in this scope
}

只是它仅在构造函数内部可用,而在类实例中不可用,因为它位于构造函数{}范围内。类字段在类{}范围内定义,因此在整个类中都可以访问

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

角度依赖注入 - 为什么需要导入?

Spring依赖注入-私有字段-反模式?为什么它甚至起作用?

为什么私有类中有公共方法?

为什么 Rust 允许公共访问私有模块?

为什么可以为私有类型创建公共别名?

为什么SSH的公共(和私有)密钥部分重叠?

为什么只在公共函数中调用私有函数?

为什么在实现 INotifyPropertyChanged 时需要私有字段

Angular 7测试依赖于私有方法的公共方法

为什么有些方法既不是私有的也不是公共的?

Angular组件中的“私有”和“公共”

为什么财产是公共的,而二传手是私有的

JS 语义:为什么私有和公共类属性似乎被重新排序?

为什么我们分别使用公共变量和私有变量

当非常量方法是私有方法时,为什么不调用公共常量方法?

为什么公共内联函数可以调用私有构造函数

为什么公共类型会引发作为私有类型的错误?

为什么对私有变量也要对公共变量进行更改?

为什么要将公共异步方法的内部逻辑分为私有方法?

为什么Quarkus会警告我有关私有领域的注入?

为什么Angular HttpRequest向URL添加私有属性?

为什么依赖项注入需要另一种语言?

依赖注入:Angular 2无法正常工作

公共,私有或工作WiFi网络之间有什么区别,每种网络都有哪些风险?

什么时候以及为什么要在angular4中使用依赖注入令牌

为什么要使用依赖注入?

为什么在依赖注入中进行反思?

进行依赖注入时公开私有方法

如何使用容器将依赖项注入私有服务?