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/
jecvay
V2EX  ›  Tornado

Tornado Template 如何获得 JavaScript 中的 var 变量?

  •  
  •   jecvay · 2015-02-12 17:11:58 +08:00 · 7183 次点击
    这是一个创建于 3332 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想通过jQuery 发起一个对api的GET请求, 获得一个json格式的list, 然后用 {% for %}控制语句来把json里面的每一个Title给显示出来.

    求教如何在 {% %} 里面调用 jQuery获得的data

    11 条回复    2015-02-12 23:39:21 +08:00
    powerfj
        1
    powerfj  
       2015-02-12 17:30:07 +08:00
    怎么感觉很飞线..
    jecvay
        2
    jecvay  
    OP
       2015-02-12 17:34:52 +08:00
    @powerfj 我第一次写网站, 不懂怎么搞- -, 像这种调用外部RESTful 的api然后显示出一个列表的应该怎么写?
    jecvay
        3
    jecvay  
    OP
       2015-02-12 17:38:54 +08:00
    @powerfj 啊我想到了一个方法, 在Handler里通过 AsyncClient 来获取 api 数据, 然后传进 Template 里面, 一般是不是这样的?
    hahastudio
        4
    hahastudio  
       2015-02-12 18:01:27 +08:00
    页面的大框架和数据提供交给后端
    动态渲染交给前端
    js 有很多框架都可以拿来干这个,angular,ember,backbone,……
    只用 jQuery 的话
    https://stackoverflow.com/questions/1145208/jquery-how-to-add-li-in-an-existing-ul
    nealv2ex
        5
    nealv2ex  
       2015-02-12 18:16:27 +08:00
    {% for %}
    是输出模板的,
    这你的当前的地方是 json格式的list

    这2个是相同的时机,你已经用了不同的输出格式了。

    要处理jsondata

    需要用前端模板 mustache.js handlebars.js ejs jade
    fy
        6
    fy  
       2015-02-12 18:17:53 +08:00
    楼主这个想法是不可能实现的,这是由模板的本质决定的。
    模版本身是个配置文件,用来生成一个对应的py文件,而这个文件的实际作用是返回一段html文本。
    在这一系列生成文本的过程中,js没有被执行过(此时js代码也仅仅只是页面中其他文本的一部分,而py根本就不关心这些文本是什么)
    所以无法取得这个值。只能是通过前端代码来弄。
    14
        7
    14  
       2015-02-12 18:18:25 +08:00   ❤️ 1
    我来误导楼主,你需要Angular
    NemoAlex
        8
    NemoAlex  
       2015-02-12 18:40:21 +08:00
    我来误导楼主,Angular 可以配合 jQuery 来实现这一点
    tonyluj
        9
    tonyluj  
       2015-02-12 18:41:08 +08:00
    带上 react
    p2p
        10
    p2p  
       2015-02-12 19:21:18 +08:00 via iPhone
    加个callback不就完了…
    jecvay
        11
    jecvay  
    OP
       2015-02-12 23:39:21 +08:00
    谢谢各位, 现在我在后台获取api数据, 然后传到前端给Tornado模板处理就好了.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3544 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 708ms · UTC 04:53 · PVG 12:53 · LAX 21:53 · JFK 00:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.