Динамически создавать элемент DOM с помощью логики JavaScript и данных
У меня есть простое экспресс-приложение, которое показывает список фильмов и при нажатии на любой из них открывает другую страницу с плеером. Мне нужно было загрузить этот фрагмент скрипта, чтобы вставить видеоплеер внутри элемента.
здесь в этой конечной точке передают видеообъект на макет плеера
router.get('/video/:id', (req, res) => {
videoController.singleVideo(req, (err, data) => {
if (err) return res.redirect('/');
return res.render('player', {video: data });
});
});
Теперь я хочу запустить этот фрагмент кода JS с видеоданными, которые я передал при загрузке этого макета плеера.
const playVideo = (video) => {
window.location = 'http://localhost:8080/video/'+id;
const conf = {
key: '',
source: {
dash: video.dashSrc,
hls: video.hlsSrc,
progressive: video.videoSrc,
poster: video.thumbSrc,
},
};
const player = bitmovin.player('my_player');
player.setup(conf).then(() => {
player.play();
});
};
1 ответ
Вы можете использовать выражение немедленного вызова функции (IIFE) в шаблоне "player", который вы отображаете, чтобы проверить, что данные были переданы, и затем выполнить требуемую функцию.
(function() {
const playVideo = (video) {...}
if (video !== undefined) { playVideo(video); }
}());