如何让我的JavaScript文件影响EJS变量

时间:2017-11-02 16:43:56

标签: javascript node.js ejs

我在index.ejs文件中定义了一个ejs变量,名为"完成"并检查用户是否使用以下内容填写了日记:

<% if (complete == false) { %>
   <button class="new_journal">Fill Out Journal<i class="fa fa-plus" aria-hidden="true"></i></button>  
<% } else { %>
    <div class="new_journal2">You Already Filled Out Your Journal</div>
<% }% >

在我的JavaScript文件中,我将以下功能倒计时24小时,然后更改&#34;完成&#34;为假:

var hour = 23;
var minutes = 59; 
var seconds  = 60;
var value = 1;
setInterval(function(){
    var time = document.getElementById('timer').innerHTML = "Hours: " + hour + 
    " Minutes: " + minutes + " Seconds: " + seconds;
    seconds -= 1;

    if(seconds == 0) {
        minutes -= 1;
        seconds = 60;
    };

    if(minutes == 0) {
        hour -= 1;
        minutes = 60;
    };

    if(hours == 0) {
        complete = false;    
    }

}, 1000);

但是,当计时器达到0时,它不会改变完成的值。

1 个答案:

答案 0 :(得分:1)

您正在以错误的方式混淆客户端javascript和EJS。 根据您的代码,您提到的javascript在客户端运行,您提到的EJS代码将在服务器端运行,因此此时它无法读取完整的变量值。

我看到你在#timer中有一个日期值,所以我希望你把数据服务器端放在哪里,用它来在服务器端而不是客户端派生完整的变量值。