重新运行ngSwitch

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重新运行ngSwitch相关的知识,希望对你有一定的参考价值。

我有一个角度应用程序,在一个组件中,我需要显示视频。根据用户设置,可以显示两个不同的视频:一个以英语显示,另一个以德语显示。用户可以在同一组件中更改此设置。目前,这就是我做到的方式:

<div [ngSwitch]="lang">
      <video
        id="some-id"
        class="video-js"
        muted
        oncanplay="this.muted=true"
        autoplay
        controls
        controlsList="nodownload"
        disablepictureinpicture
        preload="auto"
        width="100%"
        height="100%"
      >
        <source *ngSwitchCase="'en'" src="https://linktoEnglishVideo" type="video/mp4" />
        <source *ngSwitchCase="'de'" src="linktoGermanVideo" type="video/mp4" />
        <source *ngSwitchDefault src="https://linktoEnglishVideo" type="video/mp4" />
      </video>
</div>

问题是,无论何时更改设置(lang变量),ngSwitch都不会重新运行,并且视频也不会重新加载,无论如何都保持不变。

是否有办法强制其重新运行并获取正确的视频?

答案

您缺少引号:

<source *ngSwitchCase="'en'" src="https://linktoEnglishVideo" type="video/mp4" />

以上是关于重新运行ngSwitch的主要内容,如果未能解决你的问题,请参考以下文章

NgSwitch - 行为出乎意料,`No provider for NgSwitch` - 出现异常

Angular2 - NgSwitch 中的模板引用

NgSwitch在交换机上丢失了异步数据?

在片段中在运行时更改方向时更改布局而不重新创建视图

html ngSwitch

typescript ngSwitch(开关盒)