在Jade中使用JS脚本的变量

时间:2014-05-14 17:24:03

标签: javascript socket.io pug

我想使用我在jade文件中的JS脚本中定义的变量。那可能吗 ?

要清楚,这就是我要做的事情:

  script.
   var J1 = 0;
   var socket = io.connect('http://localhost:3000');
   socket.on('positionJ1', function(positionJ1) {
     J1 = positionJ1;
   })

p Le joueur 1 est en case #{J1}

编辑: 要尝试使用DOM的方法,我已经做到了,但我没有收到任何提醒。 内部HTML方法并不起作用,因为当我做文件时.body.innerHTML =" Something&#34 ;;效果很好。

script.
    var J = document.getElementById("posJ1").innerHTML;
    alert(J);

p#posJ1 Plop

更正:当我的p#posJ1高于脚本

时,它可以正常工作

解决方案:

p#posJ1
   script.
    var socket = io.connect('http://localhost:3000');
    socket.on('positionJ1', function(positionJ1) {
      var J1 = document.getElementById("posJ1");
      J1.innerHTML = "Le joueur 1 est en case " + positionJ1;
      document.body.appendChild(J1);
    })

1 个答案:

答案 0 :(得分:0)

这实际上是不可能的。在将Jade提供给客户端之前,它将呈现为静态HTML。您放入的任何变量都只在渲染时解析。

你将不得不使用javascript来做任何像这样的运行时DOM操作。

  script.
   var J1 = 0;
   var socket = io.connect('http://localhost:3000');
   socket.on('positionJ1', function(positionJ1) {
     J1 = positionJ1;
     document.getElementById('position').innerHTML= J1;
   })

    p Le joueur 1 est en case 
        span#position