使用$get()获取外部模板数据的问题
mustache.js - issues in getting external template data using $get()
js和我得到外部模板使用$get()方法如下所示
function open_device_player(device_id)
{
var device_data={
device_id:device_id
};
var n;
$.get('js/temp.html', function(template, textStatus, jqXhr) {
n=Mustache.render($(template).filter('#pageTpl').html(), device_data);
alert("inside get: "+n);
});
alert("outside get: "+n);
$("body").append(n);
}
$( ":mobile-pagecontainer" ).pagecontainer( "change", "#videodiv_"+device_id );
return false;
}
这是我的模板文件temp。html
<script id="pageTpl" type="text/template">
<div data-role='page' id='videodiv_{{device_id}}'>
<div data-role=header>
<h1> Device Page </h1>
</div>
<div data-role=content>
<img id='vid_{{device_id}}' src='http://localhost/mobilestreamvideo/mjpg/{{device_id}}' width='320'>
</div>
</div>
</script>
我的问题是我不能使用变量数据 n
外面$get()块,当我使用警报来显示 n
首先外部警报显示,然后警报内部$get()块显示。
这是因为$。get像$。ajax是异步调用。它之后的代码不会等待它完成,这就是为什么alert在$之外。在$.get中找到警报之前触发get。基本上美元。Get调用将触发,其余代码将继续工作,当$。一旦完成,它将触发内部回调函数。
您需要在$中添加新内容。。
如果你真的需要使它同步,你将需要使用$。ajax函数,并设置async参数为false。但是要注意,在这种情况下,整个页面执行将停止,至少直到$。ajax 结束。
相关文章:
- jQuery 和 Ajax 请求数据问题
- JSON Ajax 数据问题
- 请求.JS和节点.js数据问题
- EasyXDM传递数据问题
- Symfony2:Highchartsbundle数据问题
- Google Analtyics Embedded API - report.数据问题
- D3 JS - 未捕获的类型错误:无法读取未定义的属性“长度” - 似乎与数据问题有关
- 提前输入获取远程数据问题
- 异步加载数据问题 AngularJS 和 Firebase
- 提前输入.js远程发送之前发送帖子数据问题
- 在 HTML 结构中打印 JSON 数据问题
- Morris Donut图表没有数据问题
- 如何修复此本地数据问题?(Chrome扩展、Javascript、jQuery)
- 使用Spring MVC控制器在JQuery Datatable中呈现数据问题
- getJSON警报未返回任何内容-数据问题
- 渲染后挖空JS从视图模型中检索数据问题
- b4jjquery-websockets库发送数据问题
- Javascript数据表填充数据问题(没有返回错误)
- Angular数据问题——不知道如何排除
- 奇怪的jQuery数据()问题-帮助