Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var config = {
- json: {
- baseUrl: "/some/url/$",
- getter: $.getJSON,
- validator: $.isPlainObject
- },
- template: {
- baseUrl: "/some/url/$.mustache",
- getter: $.get,
- validator: function (str) {
- return (/\{\{[a-zA-Z._]*\}\}/).test(str);
- }
- }
- };
- function getItem(itemOrName, type) {
- var result = $.Deferred(), cfg = config[type];
- if (cfg.validator(itemOrName)) {
- result.resolve(itemOrName);
- } else {
- cfg.getter(cfg.baseUrl.replace("$", itemOrName))
- .done(function (data) { result.resolve(data); })
- .fail(function (xhr) { result.reject(xhr); });
- }
- return result.promise();
- }
- var foo = {
- tmplReplaceContent: function (json, tmpl, target) {
- $.when(getItem(json, "json"), getItem(tmpl, "template"))
- .done(function (json, tmpl) {
- var content = Mustache.render(tmpl, json);
- $(target).html(content).hide().fadeIn();
- })
- .fail(function (xhr) {
- // show error message
- });
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement