Jade / Pug:除非变量有数据,否则隐藏div

时间:2017-01-05 10:40:48

标签: javascript pug

除非div已经接收到本地变量的数据,否则我想隐藏div。我现在有这个:

  $origin = $request->server()['HTTP_ORIGIN'];

            if(in_array($origin, $url)){
                header('Access-Control-Allow-Origin: '. $origin);
                header('Access-Control-Allow-Headers: Origin, Content-Type, Accept, Authorization, X-Csrf-Token'); 

            }

但它显示在页面上。如何在收到数据之前隐藏它?我对Jade的if / else语法

感到困惑

2 个答案:

答案 0 :(得分:1)

-if (cost)
    div#cost
        p You earn #{cost} a day!

首先,-表示它是无缓冲的 Javascript代码。这意味着这不会在模板的最终版本中呈现。如果您需要,您应该使用如下脚本标记:script.

其次,if语句将检查cost是否不等于null或undefined。当它不存在时,将跳过if语句中的代码。

如果cost不等于null或undefined,则上面的代码将产生以下HTML:

<div id="cost">
    <p>You earn ... cost a day!</p>
</div>

答案 1 :(得分:0)

你想要实现的目标是不可能的。 jade / pug是一个模板引擎,你可以提供占位符变量,执行循环,条件等,但是你的浏览器不理解jade / pug只能理解HTML,这意味着你的模板在显示之前会被转换为静态HTML内容。 / p>

if / else块决定生成的HTML文件的一部分,一旦生成文件,jade / pug就无法控制它。

如果你想动态控制你的DOM,你可以使用一个Web框架,如Angular,Vue,React,或者你可以使用jQuery或手工使用常规Javascript进行DOM操作。