求教如何把模块变量放入js文件内 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chainchan
V2EX    Tornado

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

  •  
  •   chainchan 2013-03-10 16:57:06 +08:00 5243 次点击
    这是一个创建于 4596 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如果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
    bixuehujin
        1
    bixuehujin  
       2013-03-10 17:00:13 +08:00
    window.a = {}
    coolicer
        2
    coolicer  
       2013-03-10 17:04:56 +08:00
    这样符合语法吗? {{ }}
    chainchan
        3
    chainchan  
    OP
       2013-03-10 17:11:59 +08:00
    @bixuehujin @coolicer
    是 Tornado 渲染模板时的语法
    zhangxiao
        4
    zhangxiao  
       2013-03-10 17:23:50 +08:00
    如果你的js文件里没有封一个闭包,那直接用就可以。如果封了,在闭包里 window.a = {},外面也可以用
    binux
        5
    binux  
       2013-03-10 17:37:55 +08:00
    .js不要放静态文件夹下,当做模版,xxx.js 内

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

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

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

    @reorx
    一下点通了,貌似么什么需要问了 =。=
    enj0y
        10
    enj0y  
       2013-03-11 01:09:02 +08:00   1
    不建议楼主将变量写进JS。
    因为JS在HTTP输出时通常包含了HTTP CACHE缓存控制头,一旦变量发生变化,不易及时在程序中及时更新到最新的变量值。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5252 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 08:09 PVG 16:09 LAX 01:09 JFK 04:09
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86