假设这个简单的Angular 2 app
主要组成部分:
@Component({
selector: "app"
})
@View({
directives: [ChildComponent]
template: '<child-component></child-component>'
})
export class App {}
子组件
@Component({
selector: "child-component",
template: '<input type="text" id="applyEverythingToMe" />'
})
export class ChildComponent {}
我们如何将任何属性绑定,指令,无论如何应用于applyEverythingToMe
输入字段,而不通过@Attribute
,...在ChildComponent中定义所有内容?
假设例如我们想通过
禁用输入<child-component [disabled]="true"></child-component>
插件:https://plnkr.co/edit/kndYdGFsp8sEzCPpcKdq?p=preview
编辑:
由于第一个答案错过了我们的实际问题,这里有更多背景知识:
我们正在使用<input type="date" />
并将盒中香蕉分成()和[](例如:https://stackoverflow.com/a/39890184/1256072)。
这当然会使用parseDate混淆每个组件,而且我们也不能使用[(ngModel)]
也很烦人。
因为我们没有找到任何方法将ngModel
指令扩展到例如myModelDate
自动拆分[()]
并应用解析方法,我们创建了自己的组件来实现ControlValueAccessor
,因此我们可以将其与[(ngModel)]
绑定。此组件模板仅包含此一个输入类型=日期字段。我们现在希望我们自己的组件的行为与任何其他输入一样,因此我们只需使用<my-date [disabled]="true"/>
或<my-date [attr.whatever]="something" />
,而无需通过@Input
,@Attribute
,...明确定义所有属性。
答案 0 :(得分:0)
在要在子组件中公开的属性上使用gsutil -m acl -r set public-read gs://abcd-new
装饰器。
例如:
@Input()