我想用@Input在子组件和父组件之间共享一个变量。我在我的父组件声明public HiddenFlag: Boolean = true;
和在HTML我称这样的孩子:无法绑定到'HiddenFlag',因为它不是'app-fog'的已知属性
<app-fog [hidden] = "HiddenFlag" [HiddenFlag] = "HiddenFlag"></app-fog>
的App-雾是我的孩子组成:
import { Component, OnInit, Input } from "@angular/core";`
@Component({
selector: "app-fog",
templateUrl: "./fog.component.html",
styleUrls: ["./fog.component.css"]
})
export class FogComponent implements OnInit {
@Input() public HiddenFlag: Boolean;
public fogClass: String;
public OverlayClass: String = "hidden";
constructor() { }
ngOnInit() { }
Close() {
this.HiddenFlag = true;
}
}
的问题是,如果我尝试加载网站,它说:
Uncaught Error: Template parse errors: Can't bind to 'HiddenFlag' since it isn't a known property of 'app-fog'
如果我删除[HiddenFlag] = "HiddenFlag"
错误消失。如果你能提供任何帮助,将不胜感激。
编辑:Thx所有的答案。说实话,我仍然不知道问题是什么,但这个问题不知怎么解决了。
这是'boolean',不'Boolean'。而'string',而不是'String'。如果组件本身无法访问,也可能因为它未包含在模块中而发生此问题。作为一个手段性的问题,避免使用大写的属性名称。大写的标识符意味着指代类。 –
您是否在相关模块声明中包含了“FogComponent”组件? –
是的,我有他们都在同一模块以及。 – Nikolai