Встраивание видео YouTube с помощью шаблонов jQuery - С#

Я использую шаблоны jQuery для встраивания размещенных на YouTube видеороликов YouTube. Я могу получить идентификатор видео и сохранить его в базе данных, и все работает правильно. Однако при попытке встроить видео с шаблонами jQuery следующим образом:

{{if streamObj.TypeOf == 3}}
            <object width="425" height="350" data='http://www.youtube.com/v/${VideoId}' type="application/x-shockwave-flash">
            <param name="src" value='http://www.youtube.com/v/${VideoId}' /></object>
{{else}}

Я получаю следующую ошибку: "NetworkError: 404 Not Found - http://www.youtube.com/v/"

${VideoId} и streamObj.TypeOf вернутся правильно. Но это ошибка. Что может быть причиной этого? Спасибо.

Ответ 1

Попробуйте это.

<object width="425" height="350" data='http://www.youtube.com/v/' + ${VideoId} type="application/x-shockwave-flash">
    <param name="src" value='http://www.youtube.com/v/' + ${VideoId} />
</object>

Или, может быть, лучше.

var videoUrl = 'http://www.youtube.com/v/' + ${VideoId};

<object width="425" height="350" data=videoUrl type="application/x-shockwave-flash">
    <param name="src" value=videoUrl />
</object>

Я считаю, что тег шаблона в вашем коде не оценивается корректно из-за того, что тег шаблона задан как часть значения строки js.

Ответ 2

вы должны получить ${VideoId} из строки и использовать операцию строки, например

var videoIdString=${videoId};

var urlString='http://www.youtube.com/v/' + videoIdString ;

Потому что:

на этой странице, я никогда не видел ${} между кавычками.

http://api.jquery.com/template-tag-equal/

поэтому ваш код будет выглядеть следующим образом:

var videoIdString=${videoId};

<object width="425" height="350" data='http://www.youtube.com/v/'+videoIdString
type="application/x-shockwave-flash">
<param name="src" value='http://www.youtube.com/v/'+videoIdString /></object>