primeng 调度程序:设置组件未公开的属性的推荐方法是什么
primeng scheduler: what's the recommended approach for setting properties not exposed by the component
在查看文档时,我注意到调度程序组件没有从 fullcalendar 控件公开 slotLabelFormat。设置此 属性 的推荐解决方法是什么?
谢谢,
路易斯
我之前需要为另一个组件做类似的事情。事实证明,仅仅因为 属性 不是 @Input()
,甚至没有明确设置为 public,并不意味着您无法访问它。
我的做法与此类似:
@Component({
selector: 'blah',
template: `<custom-component #foo ></<custom-component>`
})
export class MyComponent {
// You can leave it as `any` or use the actual component type if available
@ViewChild("foo") myCustomComponent;
ngAfterViewInit() {
this.myCustomComponent.prop = 'value';
// Above should work with `any`.
// If you are using component type, and it fails, try `any` or try:
this.myCustomComponent["prop"] = 'value';
}
}
并不是一直有效,也许 ngAfterViewInit
来不及设置 属性。
另一种选择是继承组件。这就是创造
class CustomComponentChild extends CustomComponent
。为此,您至少需要 Angular 2.3,并且您必须转到实际组件并复制整个 @Component()
装饰器,因为装饰器不会复制或合并到 [=24 中的子组件=].
经过一些挖掘(即查看源代码发现 here,结果表明 Schedule 控件公开了一个名为 schedule 的 属性,它允许您访问 jquery fullcalendar 插件。有了这些信息,现在只需使用 API:
ngAfterViewInit(){
//this._agenda is of type Schedule
this._agenda.schedule.fullCalendar("option", "slotLabelFormat", "HH:mm");
}
在查看文档时,我注意到调度程序组件没有从 fullcalendar 控件公开 slotLabelFormat。设置此 属性 的推荐解决方法是什么?
谢谢,
路易斯
我之前需要为另一个组件做类似的事情。事实证明,仅仅因为 属性 不是 @Input()
,甚至没有明确设置为 public,并不意味着您无法访问它。
我的做法与此类似:
@Component({
selector: 'blah',
template: `<custom-component #foo ></<custom-component>`
})
export class MyComponent {
// You can leave it as `any` or use the actual component type if available
@ViewChild("foo") myCustomComponent;
ngAfterViewInit() {
this.myCustomComponent.prop = 'value';
// Above should work with `any`.
// If you are using component type, and it fails, try `any` or try:
this.myCustomComponent["prop"] = 'value';
}
}
并不是一直有效,也许 ngAfterViewInit
来不及设置 属性。
另一种选择是继承组件。这就是创造
class CustomComponentChild extends CustomComponent
。为此,您至少需要 Angular 2.3,并且您必须转到实际组件并复制整个 @Component()
装饰器,因为装饰器不会复制或合并到 [=24 中的子组件=].
经过一些挖掘(即查看源代码发现 here,结果表明 Schedule 控件公开了一个名为 schedule 的 属性,它允许您访问 jquery fullcalendar 插件。有了这些信息,现在只需使用 API:
ngAfterViewInit(){
//this._agenda is of type Schedule
this._agenda.schedule.fullCalendar("option", "slotLabelFormat", "HH:mm");
}