关于后端模板和前端 JavaScript 的关系
发布于 10 年前 作者 russj 4053 次浏览 最后一次编辑是 8 年前 来自 分享

回答了一个同学的关于这方面的提问 https://cnodejs.org/topic/553f1d2e3575612520161b63#55405eb2208c44bf37c24d90

问题

您好,资料我看了,但我还是不太懂,ejs传过来的参数不就是到前端了吗?为什么js不可以用呢?js全局变量是怎么用呢?还有<script>标签和<% %>标签有什么区别么?<% %>不就是可以写js代码的吗?不好意思,新手,实在搞不明白!

回答

我没有看过 ejs 的代码怎么实现这些的。我的理解是

  1. ejs传过来的参数不就是到前端了吗?
    ejs 穿的不是参数,不是变量,而是文本。因为你在前端看到的 html 是后端生成再发送到浏览器,所以你在 render 之后在后端改动了变量的话,变化是不会体现在前端的,就是你的 html 还是老样子,除非你是用的 meteor 有自动 subscribe 的功能,所以他们号称自己是 real-time。
  2. 为什么js不可以用呢?
    因为传过来的后端变量被嵌入到 html,所以 js 不能直接用。
  3. js全局变量是怎么用呢?
    <javascript>标签里都是全局变量,如果不是在函数中定义的话
  4. 还有<script>标签和<% %>标签有什么区别么?
    <script> 是 js 标签,<% %>标签是后端模板标签,会被后端生成的值(字符串)替代。
  5. <% %>不就是可以写js代码的吗?
    它是一个表达式,里面可以是 js 代码,但是最终生成字符串嵌入到 html 中,让前端渲染,所以用户可以看到动态的内容。
回到顶部