Angular从代码中删除@Input装饰器

时间:2018-06-06 21:47:24

标签: angular typescript input

我正在为Angular上的类编写代码,并且无法理解为什么从我的组件中拉出@Input装饰器会导致整个应用程序无法加载。



import { Component, OnInit, Input } from '@angular/core';
import { Dish } from '../shared/dish';
import { DishService } from '../services/dish.service';

import { Params, ActivatedRoute } from '@angular/router';
import { Location } from '@angular/common';


@Component({
  selector: 'app-dishdetail',
  templateUrl: './dishdetail.component.html',
  styleUrls: ['./dishdetail.component.scss']
})
export class DishdetailComponent implements OnInit {

  @Input()
  dish: Dish;

  constructor(private dishservice: DishService,
    private route: ActivatedRoute,
    private location: Location) { }

  ngOnInit() {
    let id = +this.route.snapshot.params['id'];
    this.dish = this.dishservice.getDish(id);
  }

}




输入组件在应用程序的任何其他位置都没有使用,据我所知,即使对这个组件也没有那么强烈相关,所以任何人都可以解释为什么当我删除那个装饰器时,它打破了我的计划?

1 个答案:

答案 0 :(得分:2)

如果你只是打开浏览器的控制台,你会看到一个很大的错误信息,说像

  

无法绑定到'dish',因为它不是'app-dishdetail'的已知属性

此外,错误消息会告诉您尝试绑定到dish的确切位置。