我正在使用Angular 4 Reactive Forms,使用“Ionic(3)native”UI组件,以及来自各种“nested reactive forms" blogs/tutorials的技术来创建动态的多节数据输入应用程序。
我想要一个可重复使用的分段控制组件,它可以获得一个标题&一系列选项(基于下拉选择),因此我不必创建多个几乎相同的子表单组件。
第一次一切都很好,但是如果ion-segment
改变按钮数量或它们的标签值(如果2个选项恰好相同),则出现在后续选择后中断选项,段按钮仍然可以正常工作)。
示例:最初的3个选项包含“成人&”未知“......
更改下拉菜单后传入的段选项数组,仍然可以选择常用选项,但我不能将“calf”或“yearling”设置为Active(尽管在组件代码和formGroup模型中它确实设置了)。如果我首先选择只有1个“未知”选项的“山羊”,那么这是我唯一可以选择的选项。
“Calf”仅变亮/禁用而非“激活”。这是我需要解决的问题。
它正确更新以显示具有正确标签的正确数量的按钮,并且即使它看起来已损坏,它也会正确更新formGroup模型,但“活动”状态仅适用于第一个选择。我尝试使用(click)
和(ionSelect
)来调用按钮上的方法,但没有区别。
基本上,除了之外,一切似乎都适用于Ionic造型和放大器。后续更改@Input
按钮选项数组的CSS类。
我的问题:
在哪里/如何告知Ionic <ion-segment>
仅 使用最新值&amp;段数?教程或Ionic文档中的示例使用静态列表和带有[(ngModel)]
数据绑定的模板驱动表单,我无法使用它与被动形式。这个仅是否可以使用模板驱动的表单?
答案 0 :(得分:2)
因此浪费了太多时间之后,发现它有一些问题,以及Ionic如何将CSS类应用于使用结构指令的组件...生命周期或ChangeDetection方法都没有工作,因为它已经运行了至今! Grrr ....
供将来参考:
如果您使用* ngFor或* ngIf结构指令生成DataInputStream dis = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
元素,并且您更改了其中一个:
结果是出现,好像您无法选择更新的细分按钮......
但你可以 - 除了将<ion-segment-button>
CSS类应用于所选按钮并将其从所有其他按钮中删除之外,一切正常。
如果您更新的细分数据源具有相同的值&amp;按钮数量,没问题。但是,segment-activated
类不会应用于任何具有比以前更高的索引或不同值的按钮。
我终于将这种丑陋的方法整合在一起来解决问题,因为我已经浪费了太多时间,所以我必须这样做......
segment-activated
丑陋的&amp; ol&#39; skool,但它完成了工作,我没有时间让它变得有趣......