具有动态内容的Ionic3 <ion-segment>将不会显示选定的CSS类

时间:2017-09-06 07:29:40

标签: ionic3 ionic-native angular4-forms

我正在使用Angular 4 Reactive Forms,使用“Ionic(3)native”UI组件,以及来自各种“nested reactive forms" blogs/tutorials的技术来创建动态的多节数据输入应用程序。

我想要一个可重复使用的分段控制组件,它可以获得一个标题&amp;一系列选项(基于下拉选择),因此我不必创建多个几乎相同的子表单组件。

第一次一切都很好,但是如果ion-segment改变按钮数量或它们的标签值(如果2个选项恰好相同),则出现在后续选择后中断选项,段按钮仍然可以正常工作)。

  

示例:最初的3个选项包含“成人&amp;”未知“......   enter image description here

     

更改下拉菜单后传入的段选项数组,仍然可以选择常用选项,但我不能将“calf”或“yearling”设置为Active(尽管在组件代​​码和formGroup模型中它确实设置了)。如果我首先选择只有1个“未知”选项的“山羊”,那么这是我唯一可以选择的选项。

     

enter image description here

     

“Calf”仅变亮/禁用而非“激活”。这是我需要解决的问题。

它正确更新以显示具有正确标签的正确数量的按钮,并且即使它看起来已损坏,它也会正确更新formGroup模型,但“活动”状态仅适用于第一个选择。我尝试使用(click)和(ionSelect)来调用按钮上的方法,但没有区别。

基本上,除了之外,一切似乎都适用于Ionic造型和放大器。后续更改@Input按钮选项数组的CSS类。

我的问题: 在哪里/如何告知Ionic <ion-segment> 使用最新值&amp;段数?教程或Ionic文档中的示例使用静态列表和带有[(ngModel)]数据绑定的模板驱动表单,我无法使用它与被动形式。这个是否可以使用模板驱动的表单?

1 个答案:

答案 0 :(得分:2)

因此浪费了太多时间之后,发现它有一些问题,以及Ionic如何将CSS类应用于使用结构指令的组件...生命周期或ChangeDetection方法都没有工作,因为它已经运行了至今! Grrr ....

供将来参考: 如果您使用* ngFor或* ngIf结构指令生成DataInputStream dis = new DataInputStream(new BufferedInputStream(socket.getInputStream())); 元素,并且您更改了其中一个:

  1. 细分中的按钮数量
  2. 他们的价值......
  3. 结果是出现,好像您无法选择更新的细分按钮......

    但你可以 - 除了将<ion-segment-button> CSS类应用于所选按钮并将其从所有其他按钮中删除之外,一切正常。

    如果您更新的细分数据源具有相同的值&amp;按钮数量,没问题。但是,segment-activated类不会应用于任何具有比以前更高的索引或不同值的按钮。

    我终于将这种丑陋的方法整合在一起来解决问题,因为我已经浪费了太多时间,所以我必须这样做......

    segment-activated

    丑陋的&amp; ol&#39; skool,但它完成了工作,我没有时间让它变得有趣......