对于集合,我想使用docpad.coffee中定义的帮助程序,例如
getLang: (inLang) ->
"/" + inLang + "/"
...
myCollection: ->
@getCollection("html").findAllLive().on "add", (model) ->
model.setMeta({ url: @getLang("en") + defaultUrlPartGoesHere })
但无法让FilesCollection知道我的助手:/
如何设置辅助函数以用于集合定义?
答案 0 :(得分:3)
引用docpadConfig.templatedata.getLang()
会有效,但如果您发现这种情况令人反感,请记住docpad.coffee只是一个标准的NodeJS模块(用coffeescript编写)。您还可以在docpadConfig文字对象之外定义您的函数,然后将它拉入您的templateData(假设您需要模板)并在构建集合时使用它。
例如:
# define the function outside of the config object
getLang: (inLang) ->
"/" + inLang + "/"
docpadConfig = {
templateData:
getLang: getLang # reference the previously defined function
collections:
myCollection: ->
# use the previously defined function
@getCollection("html").findAllLive().on "add", (model) ->
model.setMeta({ url: getLang("en") + defaultUrlPartGoesHere })
}
答案 1 :(得分:0)
嗯,不是(最)优雅的方式去使用docpad.coffee中的绝对路径我可以用例如它来引用它。 docpadConfig.templateData.getLang(...)
如果在templateData中定义。