Angular2,我如何将属性从父传递给子

时间:2016-06-27 07:01:19

标签: angular angular2-template

我有一个自定义组件" SuperField"

<div>
    <input name="super" />
    <input name="field" />
</div>

被称为:

<super-component [disabled]="true" [superDirective]="control"></super-component>

我希望通过自定义&amp;从父到子的默认属性指令没有明确定义它们,这个指令应该从主机中删除(在DOM中):

<div>
    <input name="super" [disabled]="true" [superDirective]="control" />
    <input name="field" [disabled]="true" [superDirective]="control" />
</div>

所以我可以传递每个ng2属性指令而不在ts文件中定义它们,如:

@Input() disabled: boolean;
@Input() superDirective: any;

我可以这样做吗?如果是的话,怎么样?

1 个答案:

答案 0 :(得分:0)

我无法弄清楚为什么要针对Angular的基本功能执行此操作以保持组件独立。通过这样做,它将紧密耦合。

为两个指令定义服务并保留值对象。在父类中设置这两个,然后从子类中访问它。

valObjCls
{
disabled:boolean;
superDirective:any;
}

ParentClass{

constructor(VO:valObjCls){}
VO.disabled = false;
VO.superDirective = 'parentControl';
}

ChildClass{
constructor(VO:valObjCls)
console.log(VO.disabled);
console.log(VO.superDirective);
}