Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我需要Angular2中的构造函数主体吗?_Angular_Typescript - Fatal编程技术网

我需要Angular2中的构造函数主体吗?

我需要Angular2中的构造函数主体吗?,angular,typescript,Angular,Typescript,我找不到以下两者之间的区别: constructor (private router: Router) { } 及 变量router在整个类中可用,并且它包含相同的数据。那么第一种语法和第二种语法有什么区别呢?基本上是这样的: constructor (private router: Router) { } 这是它的简称: private router: Router; constructor (_router: Router) { this.router = _route

我找不到以下两者之间的区别:

constructor (private router: Router) { }

变量
router
在整个类中可用,并且它包含相同的数据。那么第一种语法和第二种语法有什么区别呢?

基本上是这样的:

constructor (private router: Router) { }
这是它的简称:

private router: Router;    

constructor (_router: Router) {
    this.router = _router
}  
就我个人而言,我在所有项目中都使用第一种格式,因为它使文件更短,更易于阅读

若你们的问题是关于构造函数内部的块,答案是-否。若你们像我之前展示的那个样使用缩写形式,那个么并没有必要在构造函数中放入任何内容。您可以将所有需要的init内容放入
ngOnInit
函数中

简短示例:

@Component({
  selector: 'my-cmp',
  template: `<p>my-component</p>`
})
class MyComponent implements OnInit {
constructor(
    private router: Router,
    private myService: MyService
) { }

  ngOnInit() {
    console.log('ngOnInit');
  }
}
@组件({
选择器:“我的cmp”,
模板:`my component

` }) 类MyComponent实现OnInit{ 建造师( 专用路由器:路由器, 私有myService:myService ) { } 恩戈尼尼特(){ console.log('ngOnInit'); } }
1种方法只是简写语法,您不需要编写样板代码,第2种方法只是它的较长版本。不,默认情况下,它是公开的。第二个字段实际上定义了引用同一对象的两个字段。一个是公用的,另一个是专用的。只需使用第一个片段。一切都在官方文件中得到了很好的解释。你为什么不读呢@JBNizet何时更新RC5的忍者小队手册?@Ced现在。电子邮件马上就要来了,但是这本书现在是最新的,有RC5:NgModule,新的formsapi和所有东西:很遗憾,{}不能省略
@Component({
  selector: 'my-cmp',
  template: `<p>my-component</p>`
})
class MyComponent implements OnInit {
constructor(
    private router: Router,
    private myService: MyService
) { }

  ngOnInit() {
    console.log('ngOnInit');
  }
}