我使用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) {
}
这个有用,有人可以告诉我有什么区别吗?
答案 0 :(得分:1)
不同之处在于private将字段设为私有,即无法从外部TypeScript代码访问。
由于TypeScript被编译为JavaScript,并且JavaScript没有私有字段的概念,它仍然可以从外部访问,包括视图,但是将其设为私有仍然是一个好主意,因为它记录了服务对于类是私有的事实,因此不应该在类本身之外使用,包括视图。