【问题标题】:strange closure behaviour奇怪的关闭行为
【发布时间】:2013-06-16 04:48:42
【问题描述】:

我有这个程序(从我的实际程序简化),我无法从传递给视图的对象的方法访问所有变量,尽管我可以从 get 访问它。我在这里遗漏了什么吗?

all = ['hello', 'world']


require('zappajs') ->
    @get '/foo': -> 
        console.log all
        @render 'foo'

    @view foo: -> 
        console.log all

我得到一个异常,在使用 coffee hello.coffee 运行时没有定义。

【问题讨论】:

  • 我在node调试器中调试后似乎找到了原因。这个视图函数被传递给coffeecup引擎,它创建了一个新函数,我的视图函数使用“新函数”嵌入。以这种方式创建函数不会创建闭包。如果有人能确认那就太好了:-)

标签: javascript coffeescript zappa


【解决方案1】:

API references:

@view path: contents

定义一个内联模板。就像您在 Express 的视图目录中的路径上的磁盘上有一个文件。它将优先于磁盘上的模板。

由于“就像您在 Express 视图目录内的路径中的磁盘上有一个 文件”,所以 @view 下的所有内容都在单独的文件/模块中,这解释了为什么您无法访问 @ 987654324@.

【讨论】:

    猜你喜欢
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 2017-01-02
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多