发布
社区首页 >问答首页 >在zappa的咖啡视图中嵌入coffeescript

在zappa的咖啡视图中嵌入coffeescript
EN

Stack Overflow用户
提问于 2012-06-23 03:56:20
回答 1查看 297关注 0票数 0

是否有一种方法可以将变量值(显然是用于读取)从应用程序传递到咖啡库视图(在zappa中)中的嵌入式coffeescript,例如:

代码语言:javascript
代码运行次数:0
复制
.... @render 'index', myVar:"something"

@view index: ->
  coffeescript ->
    $(document).ready ->
      I need to get to myVar here...

如果它能用的话看起来真的很好..。(作为嵌入式javascript的替代方案)

更新:这里有几次尝试。我只是尝试使用嵌入脚本中的字符串作为id。

代码语言:javascript
代码运行次数:0
复制
coffeescript ->
  $(document).ready ->
    id = myVar

coffeescript ->
  $(document).ready ->
    id = "#{myVar}"

coffeescript ->
  $(document).ready ->
    id = @myVar

coffeescript ->
  $(document).ready ->
    id = "#{@myVar}"

我已经用脚本->函数编写了一些快速的javascript (因为它只是一个字符串,所以我可以很容易地插入变量),所以我已经对它进行了处理,但是coffeescript的方式会更简洁。这是有道理的,范围会丢失在浏览器端--我只是想弄清楚怎么做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-23 14:13:46

我猜“脚本->函数”指的是:

代码语言:javascript
代码运行次数:0
复制
  doctype 5
  html ->
    body ->
      h1 "Hello world."
      script "myvar = \"#{@myvar}\""
      coffeescript ->
        console.log myvar

至少这是个老套的解决办法。它也可以通过对象来完成,通常使用JSON或类似的方法进行序列化。

但是我不会把它归类为“干净的coffeescript方式”,所以我想这个问题仍然存在!

这里的问题是,我们在两个上下文中执行coffeescript代码;一种是在生成html以发送到客户端的服务器上,另一种是在客户机本身上通过coffeescript ->构造的上下文执行。

服务器端了解本地和类似的信息,因此对于运行在服务器上的代码来说,评估基于coffeescript的模板并用值和类似值替换模板变量非常简单。

对客户可不是这样。首先,客户机对局部变量/模板变量一无所知,它只看到页面在服务器端呈现时包含的内容。而且,在coffeescript构造中执行简单的模板扩展也不能工作,因为coffeescript将不知道您是引用客户端上的局部变量还是服务器上的模板变量。理论上,可能会有特殊的序列来表示“在coffeescript代码中扩展模板变量”,但是接下来我们又要在咖啡上创建一种新的模板语言。当然,它可以看起来像普通的coffeescript,例如serverLocal(SOMEREF),其中SOMEREF将被相应的值替换。

理论上,Coffeecup可以支持共享所有(或所选)局部变量的构造,并使用类似于我前面展示的script哈克的" hack“作为访问客户端的变量,而且它可能没有太大的不同,除非使用JSON或类似的方法来支持比简单字符串更多类型的数据。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11166715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档