Angular 如何正确分叉离子模具组件

Angular 如何正确分叉离子模具组件,angular,ionic-framework,ionic4,stenciljs,Angular,Ionic Framework,Ionic4,Stenciljs,我想用ion datetime来定制屏幕上的柱和位置,并在我的ionic应用程序中使用它 我不知道如何做到这一点,总体解决方案似乎是丑陋的复制粘贴 有什么合适的解决方案吗?没有官方的方法/API来分叉离子的单个组件。但是,仍然可以根据您的喜好调整它们的组件。可以使用该属性调整列。如果这对您来说还不够好,您可以使用该组件构建自己的日期时间选择器(这使您能够更好地控制如何呈现列) 当涉及到样式时,它不是那么简单,因为您不能使用CSS覆盖任何内部组件样式。由于阴影DOM的性质,只有暴露的元素才允许修改

我想用ion datetime来定制屏幕上的柱和位置,并在我的ionic应用程序中使用它

我不知道如何做到这一点,总体解决方案似乎是丑陋的复制粘贴


有什么合适的解决方案吗?

没有官方的方法/API来分叉离子的单个组件。但是,仍然可以根据您的喜好调整它们的组件。可以使用该属性调整列。如果这对您来说还不够好,您可以使用该组件构建自己的日期时间选择器(这使您能够更好地控制如何呈现列)

当涉及到样式时,它不是那么简单,因为您不能使用CSS覆盖任何内部组件样式。由于阴影DOM的性质,只有暴露的元素才允许修改组件的外观(除非元素位于灯光DOM中)

但是仍然可以修改样式,只需要通过JavaScript即可。您可以围绕
ion datetime
创建自己的包装器组件,获取对它的引用并直接进入它的
shadowRoot
来修改样式

@组件({tag:'my datetime'})
导出类MyDatetime{
setStyles=(el?:HtmlOnDataTimeElement)=>{
如果(!el | |!el.shadowRoot){
返回;
}
el.shadowRoot.querySelector('.datetime text').style.fontWeight=600;
}
render(){
返回;
}
}

请注意,当Ionic团队更新组件并更改您所依赖的某些内部实现细节时,这些修改可能会中断。

我发现ion picker在ion datetime中作为一个孩子使用,我不知道这种样式策略,我超载了。picker-wrapper.sc-ion-picker-ios很难看。我还尝试使用ion picker colums来构建我自己的轮子,但它们没有暴露出来:/问题是我想在组件模型中使用picker,以便在picker周围添加选项,这不仅仅是关于样式:/