関数全体をここに貼り付けます。ちなみに、このスクリプトでは口ひげのテンプレート ライブラリを使用しましたが、この質問では必要ありません。
tmplReplaceContent : function(json, tmpl, target){
var regex = new RegExp("\{{[a-zA-Z\.\_]*\}}");
var template = '';
var view = '';
/* json -> check if object */
if (typeof json == 'object') {
view = json;
if(!regex.test(tmpl)){
/* get mustache tmpl from the path */
$.get(msi.vars.tmpl_url + tmpl + '.mustache', function(tmplOut){
template = tmplOut;
var content = Mustache.render(template, view);
$(target).html(content).hide().fadeIn();
});
} else {
template = tmpl;
var content = Mustache.render(template, view);
$(target).html(content).hide().fadeIn();
}
} else {
/* getJSON from the path */
$.getJSON(msi.vars.base_url + json, function(jsonOut){
view = jsonOut;
if(!regex.test(tmpl)){
/* get mustache tmpl from the path */
$.get(msi.vars.tmpl_url + tmpl + '.mustache', function(tmplOut){
template = tmplOut;
var content = Mustache.render(template, view);
$(target).html(content).hide().fadeIn();
});
} else {
template = tmpl;
var content = Mustache.render(template, view);
$(target).html(content).hide().fadeIn();
}
});
}
非同期であるために Ajax の成功でローカル変数を割り当てることができないため、短くして繰り返しコードを削除することができませんでした。私は約15時間インターネットをさまよいました。しかし、まだ運がありません。
繰り返しコードを削除して、これを短くするにはどうすればよいですか?