【问题标题】:Calling a function or script conditionally if variable exists如果变量存在,则有条件地调用函数或脚本
【发布时间】:2013-03-28 18:42:08
【问题描述】:

使用 ExpressJS 我渲染一个 EJS 视图,有时当我渲染视图时我传递一个变量 (myVar)。我想调用一个函数;在发送变量(myVar)的条件下。

app.js 中的 Express 路由。

    app.get('/viewing/login', function(req, res){
           res.render('viewing/login', {
               title: 'my view',
               locals: myVar     <!------The variable being sent(myVar) ----
           });
    });

myScript.js 中的函数

        $(document).ready(function(){
            $('<div></div>')
                .attr('id','overlay')
                .css('opacity', '.60')
                .addClass('active')
                .html(myVar)
                .appendTo('body')
                .slideDown('slow',function(){
                    setTimeout(function(){$('#overlay').slideUp('slow')}, 5000);
             })
       });

还有一个名为 login.ejs 的 EJS 文件

  1. App.js 将 myVar 发送到 login.ejs
  2. 如果 myVar 被发送到 login.ejs,保存在 myScript 中的函数应该运行
  3. login.ejs 中 myVar 的存在在哪里得到验证

如果EJS中存在变量,调用函数(或脚本)的方法是什么?

当用户未正确输入用户名和密码时,我的代码尝试向下滑动显示给定错误的叠加层?

【问题讨论】:

    标签: javascript jquery express


    【解决方案1】:

    我相信一种方法是简单地进行typeof 检查:

    if (typeof(myVar) === 'undefined') {
        // variable is undefined send alert, etc;
    }
    

    【讨论】:

    • 如果我把它放在一个脚本中 myVar 没有被传递给脚本,并且如果我把它放在我的视图中它没有被确认,我假设因为与 ejs 想要 % 表示法有关
    • 我的下一个想法是每次都调用脚本,但让脚本以某种方式依赖于 myVar,这样如果它不存在就无法运行。这似乎是一个冗长的黑客攻击
    • @Four_lo 我不明白,当您说script 时,您的意思是function?或者你的意思是你的整个代码?请清楚。我提供的是验证变量是undefined。这是在返回视图的函数中使用 myVar 之前添加的条件检查。
    • 哦,好的,res.render 函数与我要调用的函数位于不同的 javascript 文件中。我应该 A) 组合 javascript 文件 B) 将变量传递给视图,然后传递给第二个 javascript 文件还是 C) 是否有一种相对简单的方法可以将变量从一个 javascript 文件传递​​到另一个?
    • @Four_lo 我现在不关注您的问题...请修改您的初始问题以尽可能清楚,您想要验证 var,而不是其他东西。有问题的聊天不是 SO 的方式。
    猜你喜欢
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 2020-01-14
    相关资源
    最近更新 更多