首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Tornado Documentation
http://www.v2ex.com/tornado/
Tornado on GitHub
https://github.com/facebook/tornado/
Tornado Gists
http://tornadogists.org/
V2EX  ›  Tornado

求教如何把模块变量放入js文件内

  •  
  •   chainchan · 2013-03-10 16:57:06 +08:00 · 2877 次点击
    这是一个创建于 2141 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果js是嵌在html模板内的情况:
    <script type="text/javascript">
    var a= {{ obj['a'] }};
    <script>

    但是如果我要把上面的内容全部放入一个js文件

    <script type="text/javascript" src="xxx.js"></script>


    那我应该如何在 xxx.js 内使用 {{ obj['a'] }} 这个变量呢?
    10 回复  |  直到 1970-01-01 08:00:00 +08:00
        1
    bixuehujin   2013-03-10 17:00:13 +08:00
    window.a = {}
        2
    coolicer   2013-03-10 17:04:56 +08:00
    这样符合语法吗? {{ }}
        3
    chainchan   2013-03-10 17:11:59 +08:00
    @bixuehujin @coolicer
    是 Tornado 渲染模板时的语法
        4
    zhangxiao   2013-03-10 17:23:50 +08:00
    如果你的js文件里没有封一个闭包,那直接用就可以。如果封了,在闭包里 window.a = {},外面也可以用
        5
    binux   2013-03-10 17:37:55 +08:00
    .js不要放静态文件夹下,当做模版,xxx.js 内

    var a= {{ json_encode(obj['a']) }};

    然后该怎么用就怎么用啊
        6
    chainchan   2013-03-10 17:42:36 +08:00
    @binux
    也就是说没有办法把 {{ json_encode(obj['a']) }} 这个变量用在静态js文件里面。
    而只能放在html模板的<script>标签里面,是吗?

    因为js写着写着很长了,放html不直观,所以想抽成一个文件…
        7
    binux   2013-03-10 17:44:23 +08:00   ♥ 1
    @chainchan 但是,.js本身可是是模版啊,render("xxx.js", obj=obj)
        8
    reorx   2013-03-10 20:11:40 +08:00   ♥ 2
    尽量避免在 Javascript 里,无论是嵌在 html 还是单文件的,引用模版变量。如果一定要用的话,可以把模版变量放在某个 html element 的 attribute 里,比如 <div data-a={{ obj['a'] }}>,再通过 Javascript 取出来。一般来说这种模版变量都跟某个 element 有关系的吧。
        9
    chainchan   2013-03-10 20:46:52 +08:00
    楼上2位已感谢~

    @reorx
    一下点通了,貌似么什么需要问了 =。=
        10
    enj0y   2013-03-11 01:09:02 +08:00   ♥ 1
    不建议楼主将变量写进JS。
    因为JS在HTTP输出时通常包含了HTTP CACHE缓存控制头,一旦变量发生变化,不易及时在程序中及时更新到最新的变量值。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1254 人在线   最高记录 4236   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 17:34 · PVG 01:34 · LAX 09:34 · JFK 12:34
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1