使用Pure JS可以实现“有条件渲染”吗?

时间:2012-01-20 17:04:54

标签: javascript pure-js

我使用Pure JS指令进行渲染:

http://beebole.com/pure/documentation/rendering-with-directives/

如果模板中的节点丢失,Pure JS的默认行为将由于以下原因而崩溃:

  

在模板中找不到节点“XXX”

此默认行为完全可以理解,因为它可确保模板中不存在任何不一致。但是,在相同的情况下,人们希望跳过失败的赋值并继续执行其余的赋值(可能记录错误),以避免整个渲染因单个错误/错误而失败。

有没有办法用Pure JS获得这种行为?我可以告诉Pure JS只是“如果它存在”渲染元素吗?

1 个答案:

答案 0 :(得分:3)

不幸的是,Pure JS版本:2.79 )的当前稳定版本不允许呈现元素“如果它存在”?

以下Pure代码段显示了如何抛出错误:

if(selector === '.' || ( !selector && attr ) ){
    target[0] = dom;
}else{
    target = plugins.find(dom, selector);
}
if(!target || target.length === 0){
    return error('The node "' + sel + '" was not found in the template:\n' + outerHTML(dom).replace(/\t/g,'  '));
}

正如您所看到的,如果找不到target(通过诸如jQuery,dojo等库之一),则会抛出提到的错误。


我在这种情况下使用的解决方法如下:

  • 我使用包含所有可能元素的模板,以便Pure不会抛出错误
  • 使用CSS类隐藏了一些元素(例如显示错误消息等)
  • 我使用Pure和JavaScript函数更改CSS类,并使用指令隐藏/显示元素,具体取决于输入数据。