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您链接的答案使其生效!谢谢。