Javascript 是";“条件呈现”;纯JS可能吗?
我使用纯JS指令进行渲染: 如果模板中缺少节点,纯JS的默认行为是由于以下原因而崩溃: 在模板中找不到节点“XXX” 这种默认行为是完全可以理解的,因为它确保模板中没有不一致的地方。但是,在同样的情况下,我们希望跳过一个失败的赋值,继续进行其余的赋值(可能记录错误),以避免由于单个错误/打字错误而导致整个渲染失败Javascript 是";“条件呈现”;纯JS可能吗?,javascript,pure-js,Javascript,Pure Js,我使用纯JS指令进行渲染: 如果模板中缺少节点,纯JS的默认行为是由于以下原因而崩溃: 在模板中找不到节点“XXX” 这种默认行为是完全可以理解的,因为它确保模板中没有不一致的地方。但是,在同样的情况下,我们希望跳过一个失败的赋值,继续进行其余的赋值(可能记录错误),以避免由于单个错误/打字错误而导致整个渲染失败 有没有办法用纯JS获得这种行为?我可以告诉纯JS只渲染“如果存在”的元素吗?不幸的是,当前的稳定版本(修订版:2.79)不允许渲染“如果存在”的元素吗 以下纯代码片段显示了如何引发错
有没有办法用纯JS获得这种行为?我可以告诉纯JS只渲染“如果存在”的元素吗?不幸的是,当前的稳定版本(修订版:2.79)不允许渲染“如果存在”的元素吗 以下纯代码片段显示了如何引发错误: 如您所见,如果未找到
target
(由jQuery、dojo等库之一找到),则抛出上述错误
我在这种情况下使用的解决方法如下:
- 我将模板与所有可能的元素一起使用,以便Pure不会抛出错误
- 某些元素(如显示错误消息等)使用CSS类隐藏
- 我使用Pure和JavaScript函数以及根据输入数据隐藏/显示元素的指令来更改CSS类
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,' '));
}