我编写了一个检索html模板的函数,然后使用jQuery.tmpl绑定数据。我认为它相当整洁,并且封装了我需要的东西并为我提供了可重用的功能。然而,我的问题是可以改进。
我主要关心的是如果$ .get方法失败,以及callBack函数的执行方式。
function Bind(templateURL, templateData, templateTarget, callBack){
var req = $.get(templateURL);
req.success(function(templateHtml) {
$(templateTarget).html(''); //clear
$(templateHtml).tmpl(templateData).appendTo(templateTarget); //add deal
callBack();
});
}
答案 0 :(得分:1)
您可以将tmpl()
的结果直接传递给html()以清除目标容器并同时附加新内容。您还可以将$.get()的结果链接到success
处理程序中,以避免使用局部变量:
function Bind(templateURL, templateData, templateTarget, callBack)
{
$.get(templateURL).success(function(templateHtml) {
$(templateTarget).html($(templateHtml).tmpl(templateData));
callBack();
});
}
如果$.get()
失败,则不会发生任何事情,因为您没有注册错误处理程序。该处理程序的功能取决于您,但您可能希望在警告框或页面上的某个位置显示相应的消息。
你的第二个问题不太清楚。按照目前的情况,callBack
只会在成功时被调用,而且不需要参数。
答案 1 :(得分:0)
您可以使用$ .ajax分配和错误回调。例如:
var jqxhr = $.ajax({ url: "example.php" })
.success(function() { alert("success"); })
.error(function() { alert("error"); })