如果Handlebars中缺少数据,如何删除模板标记?

时间:2014-10-14 00:05:49

标签: javascript handlebars.js

如果数据不存在,如何从HTML代码段中删除所有模板标记。

var $target = $(target);
var dataString = // json from feed ! Sometimes fails

if( typeof dataString !== "undefined") {
    var data = $.parseJSON(dataString);
    var template = Handlebars.compile($target.html());
    var html = template(integrationData);
    $target.html(html);
} else {
    // What goes here?
    // I am making up "stripTags"
    Handlebars.stripTags($target.html());
}

基本上我想自动删除所有{{}}作为故障保护。

1 个答案:

答案 0 :(得分:1)

如果对象不存在,句柄将忽略任何{{whatever}},并且它们将从标记中删除。

如果您的Feed默认为默认为空对象:

var $target = $(target);
var dataString = // json from feed ! Sometimes fails
var data = {};

if( typeof dataString !== "undefined") {
    data = $.parseJSON(dataString);
}

var template = Handlebars.compile($target.html());
var html = template(data);
$target.html(html);

希望有帮助吗?