我编写了一个函数来检索 html 模板,然后使用 jQuery.tmpl 绑定(bind)数据。我认为它相当整洁,封装了我需要的东西,并为我提供了一个可重用的功能。然而,我的问题是它可以改进吗?
我主要关心的是如果 $.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();
});
}
最佳答案
您可以将tmpl()
的结果直接传递给html()清除目标容器并同时附加新内容。您还可以链接 $.get() 的结果进入您的 success
处理程序以避免使用局部变量:
function Bind(templateURL, templateData, templateTarget, callBack)
{
$.get(templateURL).success(function(templateHtml) {
$(templateTarget).html($(templateHtml).tmpl(templateData));
callBack();
});
}
如果 $.get()
失败,则不会发生任何事情,因为您没有注册错误处理程序。该处理程序将做什么取决于您,但您可能希望在警告框中或页面上的某处显示适当的消息。
您的第二个问题不太清楚。就目前而言,callBack
只会在成功时被调用,并且没有参数。
关于javascript - jQuery 包装函数中的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5008841/