Html 重新运行ngSwitch

Html 重新运行ngSwitch,html,angular,Html,Angular,我有一个角度应用程序,在一个组件中,我需要显示一个视频。根据用户设置,可以显示两个不同的视频:一个是英语视频,另一个是德语视频。用户可以在此组件中更改此设置。目前我就是这样做到的: <div [ngSwitch]="lang"> <video id="some-id" class="video-js" muted oncanplay="this.muted=true" autoplay

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

<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" />


你说得对,我会纠正的,尽管不幸的是,这并不能解决问题。发布您的组件代码。您可以提供stackblitz演示吗?>以及
lang
变量的范围是什么?您提供的stackblitz没有帮助:我对ngSwitch的实现是正确的,我可以向您保证
lang
变量在需要时会相应地更改。我的ngSwitch可以很好地使用文本字符串,如您的示例中所示。在我的例子中,问题是ngSwitch与视频相关,并且在切换时显示的视频不会改变。我可以自己提供一个stackblitz的例子,但可能需要一段时间
lang
是ts类中的一个公共变量。这将有助于:@prashantpimple您链接的答案使其生效!谢谢。