Angular注入服务默认范围

时间:2018-03-26 16:12:34

标签: angular

我使用angular创建了一个项目并尝试注入路由器,这是我的代码:

import {Component, OnInit} from "@angular/core";
import {ActivatedRoute, Router} from "@angular/router";

@Component({
selector: 'app-stream-live-main',
templateUrl: './stream-live-main.component.html',
styleUrls: ['./stream-live-main.component.scss'],
})


export class StreamLiveMainComponent implements OnInit{


constructor(router: Router) {

}

ngOnInit() {
    console.log(this.router.url);
}
}

当我服务时它不起作用,错误是

  

错误   SRC /应用程序/流/流活主/流活main.component.ts(19,26):   错误TS2339:属性“路由器”在类型上不存在   'StreamLiveMainComponent'。

如果在路由器之前添加私有:路由器

constructor(private router: Router) {

}

这个有用,有人可以告诉我有什么区别吗?

1 个答案:

答案 0 :(得分:1)

不同之处在于private将字段设为私有,即无法从外部TypeScript代码访问。

由于TypeScript被编译为JavaScript,并且JavaScript没有私有字段的概念,它仍然可以从外部访问,包括视图,但是将其设为私有仍然是一个好主意,因为它记录了服务对于类是私有的事实,因此不应该在类本身之外使用,包括视图。