如何使用 Renderer2 创建带有模板引用的元素?
How to use Renderer2 to create an element with template reference?
情况:我们使用 AdapterJS 将一些 webRTC 填充到 Internet Explorer 中。一切都很好,花花公子,它在 ie 中正确地将 <video #someRef>
替换为 <object>
,并且效果很好。
问题是如果我们要更改视频,则缺少视频标签。
我可以看到 2 种方法来解决这个问题(无需在其他地方重写很多逻辑)
- 使用 Renderer 以某种方式将
<video #someRef>
添加到模板中,以便 ViewChild 可以看到它
- 以某种方式从父级检索 ElementRef(
parentRef.nativeElement.children[0]
以某种方式作为 ElementRef
返回,我们需要在其他地方使用,而不仅仅是 HTMLVideoElement)
不知道该怎么做,渲染器似乎没有特定的方法来为新元素添加 viewChild 的模板引用
而且我认为您不能简单地将 parentRef.nativeElement.children[0]
声明为 ElementRef
,因为它缺少一些东西。
有什么想法吗?希望我的问题不会让人大惑不解
如果这对其他人有用:
最终使用列表中的版本 2,包装视频并将 #ref 放在父级上,这样我就可以在小时候参考视频。每次我需要对视频进行操作时,我都会根据父元素进行选择,以确保始终引用当前视频元素。
这不是我希望能够实现的,但它对我们的目的有用。
理想情况下,完全避免这种情况并重新考虑不需要它的体系结构会很好,但如果所有其他方法都失败了,这是一个不错的解决方法。
情况:我们使用 AdapterJS 将一些 webRTC 填充到 Internet Explorer 中。一切都很好,花花公子,它在 ie 中正确地将 <video #someRef>
替换为 <object>
,并且效果很好。
问题是如果我们要更改视频,则缺少视频标签。
我可以看到 2 种方法来解决这个问题(无需在其他地方重写很多逻辑)
- 使用 Renderer 以某种方式将
<video #someRef>
添加到模板中,以便 ViewChild 可以看到它 - 以某种方式从父级检索 ElementRef(
parentRef.nativeElement.children[0]
以某种方式作为ElementRef
返回,我们需要在其他地方使用,而不仅仅是 HTMLVideoElement)
不知道该怎么做,渲染器似乎没有特定的方法来为新元素添加 viewChild 的模板引用
而且我认为您不能简单地将 parentRef.nativeElement.children[0]
声明为 ElementRef
,因为它缺少一些东西。
有什么想法吗?希望我的问题不会让人大惑不解
如果这对其他人有用:
最终使用列表中的版本 2,包装视频并将 #ref 放在父级上,这样我就可以在小时候参考视频。每次我需要对视频进行操作时,我都会根据父元素进行选择,以确保始终引用当前视频元素。
这不是我希望能够实现的,但它对我们的目的有用。
理想情况下,完全避免这种情况并重新考虑不需要它的体系结构会很好,但如果所有其他方法都失败了,这是一个不错的解决方法。