Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是";“条件呈现”;纯JS可能吗?_Javascript_Pure Js - Fatal编程技术网

Javascript 是";“条件呈现”;纯JS可能吗?

Javascript 是";“条件呈现”;纯JS可能吗?,javascript,pure-js,Javascript,Pure Js,我使用纯JS指令进行渲染: 如果模板中缺少节点,纯JS的默认行为是由于以下原因而崩溃: 在模板中找不到节点“XXX” 这种默认行为是完全可以理解的,因为它确保模板中没有不一致的地方。但是,在同样的情况下,我们希望跳过一个失败的赋值,继续进行其余的赋值(可能记录错误),以避免由于单个错误/打字错误而导致整个渲染失败 有没有办法用纯JS获得这种行为?我可以告诉纯JS只渲染“如果存在”的元素吗?不幸的是,当前的稳定版本(修订版:2.79)不允许渲染“如果存在”的元素吗 以下纯代码片段显示了如何引发错

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

如果模板中缺少节点,纯JS的默认行为是由于以下原因而崩溃:

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

这种默认行为是完全可以理解的,因为它确保模板中没有不一致的地方。但是,在同样的情况下,我们希望跳过一个失败的赋值,继续进行其余的赋值(可能记录错误),以避免由于单个错误/打字错误而导致整个渲染失败


有没有办法用纯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,'  '));
}