代码之家  ›  专栏  ›  技术社区  ›  Lahiru Chandima

使用ngfor添加mat slide toggle时阻止动画

  •  1
  • Lahiru Chandima  · 技术社区  · 7 年前

    在我的Angular应用程序中,我有一个设置页面,用户可以在其中检查几个选项。我用 mat-slide-toggle 所有选项。

    <div *ngFor="let setting of visibleSettings">
        <div style="display: flex;">
            <div>
                <p class="setting-name">{{setting.name}}</p>
                <p class="setting-description">{{setting.def.description}}</p>
            </div>
            <div style="flex: 1;"></div>
            <mat-slide-toggle
                    class="toggle-setting"
                    name="{{setting.name}}"
                    [ngModel]="setting.value"
                    (change)="onSettingChanged(setting, $event)">
            </mat-slide-toggle>
        </div>
    </div>
    

    visibleSettings 可见设置 使用最新设置的副本重新初始化。

    什么时候? 可见设置 获取重新初始化,应处于选中状态的幻灯片切换最初变为未选中,然后用动画进行检查。这会分散用户的注意力,因为每当用户保存或丢弃时,检查过的设置都会暂时取消选中并再次检查。

    是否有任何方法可以防止这种情况并使幻灯片切换保持在 [ngModel]="setting.value" 每当 可见设置 重新初始化?

    1 回复  |  直到 7 年前
        1
  •  2
  •   G. Tranter    7 年前

    尝试将幻灯片切换绑定到选中状态,而不是使用ngmodel。通常,[ngmodel]与(ngmodelchange)一起使用,用于模板驱动的表单。幻灯片切换有自己的对应项[选中]和(更改),可在没有表单的情况下使用。我怀疑混合两种不同的型号可能是你的问题。