我有这个模板,其中包含来自youtube的视频,其中包含swfobject。
有没有办法包含脚本标签......
<script type="text/javascript">
</script>
在jQuery模板中?
<script id="filaVideoTemplate" type="text/x-jQuery-tmpl">
<!-- Some HTML here -->
<script type="text/javascript">
<!-- Some javascript here -->
</script>
</script>
显然它没有直接起作用,有没有办法在没有脚本的情况下实现同样的事情?
答案 0 :(得分:24)
<script id="filaVideoTemplate" type="text/x-jQuery-tmpl">
<!-- Some HTML here -->
<script type="text/javascript">
<!-- Some javascript here -->
{{html "</sc"+"ript>"}}
</script>
您可以使用{{html“&lt; / sc”+“ript&gt;”}}替换&lt; / script&gt;
答案 1 :(得分:4)
不确定这是否是唯一的方法,但您可以将脚本作为模板的原始HTML插入:
<script id="filaVideoTemplate" type="text/x-jQuery-tmpl">
<!-- Some HTML here -->
{{html innerScript}}
</script>
然后:
var innerScript = '<script type="text/javascript"><!-- Some javascript here --></script>';
$('#filaVideoTemplate').tmpl({innerScript: innerScript});
答案 2 :(得分:0)
Ronny Wang的回答为我的问题提供了一个好的开始。但是,他的解决方案对我不起作用 - jQuery模板正文中的..标签导致我的MVC3 Razor视图页面出现问题。
幸运的是,我偶然发现了一个有效的解决方案(详情@ https://github.com/jquery/jquery-tmpl/issues/94),只需要进行一些细微的改动。这是Ronny的答案,但有一个应该使它与MVC3兼容的修复:
<script id="filaVideoTemplate" type="text/x-jQuery-tmpl">
<!-- Some HTML here -->
<scr{{= ""}}ipt type="text/javascript">
<!-- Some javascript here -->
</scr{{= ""}}ipt>
</script>
看起来只需打开开始和结束标签。希望这有帮助!
答案 3 :(得分:0)
<script id="filaVideoTemplate" type="text/x-jQuery-tmpl">
<!-- Some HTML here -->
</script>
var data = [{ 'Id': '1', 'Name': 'a' }, { 'Id': '2', 'Name': 'b' }, { 'Id': '3', 'Name': 'c'}];
var renderedHtml = $('<div />').html($('#filaVideoTemplate').tmpl(data)).append(('<script type="text/javascript"><!-- Some javascript here --></endScript>').replace(/endScript/g, 'script')).html();
如果数据是单一的,则代码上方的集合不正确。 else(数据是集合)用于多次绑定的脚本标记(data.length times)。
答案 4 :(得分:0)
不确定你问的是什么,但是: 您可以使用ajax请求并将模板放在(js)文件中。 我的template_script.js像这样使用ajax:
$('the element').load('template_script.js').then( OK , fail );
function OK(){
do something if request was ok.
}
function fail(){
do something if request was not ok.
}