2013-11-14 3 views
0

Некоторые популярные, доступные в продаже видеоплееры HTML5 по существу являются большими кусками JavaScript. JWPlayer - один. Я использую другой, но он подобен в настройке.Marionette js: как визуализировать видеопроигрыватель HTML5/javascript

Эти игроки внедряются таким образом, что кажется неработоспособным с клиентской архитектурой MVC в целом. Игроки хотят оказаться в DOM. Вы создаете экземпляр объекта игрока и передаете элемент DOM в его конструктор. Как ...

mediaPlayer = new CommercialVideoPlayer("some-place-in-DOM"); 

Игрок затем делает себя «место-в-DOM».

Не конфликтует с представлением рендеринга в марионетке - с менеджером региона, показывающим виды?

Другими словами, эта «игра с рендерингом» кажется, по моему первому взгляду, противоречить понятию, которое марионетка хочет отдать. Он хочет, чтобы его менеджер региона отображал представления элементов DOM. Он не хочет, чтобы какой-то игрок вставлял вещи в DOM.

Он хочет сделать ...

someRegion.show(someView); 

Я не оборачивать мой мозг вокруг, где мой HTML5 видеоплеер идет там? Внутри вид?

Когда я положил его в целях и затем попытаться показать, как ...

videoRegion.show(videoView);//media player is inside videoView 

... Я ничего не получаю, потому что марионетка в менеджер региона и игрок ведут борьбу за то, кто получает, чтобы сделать, где ,

Я думаю, что мне просто не хватает концептуального понимания того, что марионетка js хочет, чтобы я сделал это с медиа-плеером. Я ищу понимание и лучшую практику.

ответ

0

Руководители региона Марионет хотят отображать виды марионеток. Период. Им все равно, что делают эти взгляды.

Другими словами, вы можете иметь ваш взгляд создать DOM элемент, а затем показать видеоплеер, что-то вроде:

var VideoView = Marionette.ItemView.extend({ 
    template: _.template('<div id="video-player"></div>'), 

    onShow: function(){ 
    this.mediaPlayer = new CommercialVideoPlayer("some-place-in-DOM"); 
    } 
}); 

var myVideoView = new VideoView(); 

videoRegion.show(myVideoView); 

Выше непроверенных псевдо-кода, но вы должны получить идет в правильном направлении.

+0

Кажется логичным. Не работает, хотя, хотя марионеточку все равно, что делают взгляды, игрок делает это. Он не хочет отображать себя, если его контейнер div (id = «video-player) не существует в DOM. В onShow он еще не был вставлен в DOM. Я протестировал это, удалив марионетку в целом и просто вставляя игрок в простой html-странице. Если я удалю контейнер div div игрока, «видео-плеер», я получаю ту же ошибку, которую получаю, если я запустил код marionette onShow выше. Это один из тех случаев, когда две сторонние библиотеки в некотором роде. Вид проблемы с курицей и яйцом – Robert

+0

Мне нужен марионетный способ для рендеринга моего шаблона, прежде чем мой плеер попытается найти этот элемент контейнера. – Robert

+0

Моя ошибка. Другая небольшая ошибка. Думайте, что это может работать. Проверка сейчас – Robert

Смежные вопросы