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

How to remove template markup if data is missing in Handlebars?

本文关键字:删除 何删除 Handlebars 数据 如果      更新时间:2023-09-26

如果数据不存在,如何从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());
}

基本上,我想自动去掉所有的{{}}作为故障保护。

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

如果你的提要失败,默认为空对象:

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);

希望有帮助吗?