我正在尝试设置Yesod,同时为我网站的前端运行Fay。它主要是按照我的预期工作,就像我写的任何Fay一样。问题是我在生成的JS中得到了一个未捕获的ReferenceError。
以下是有问题的JS的简短版本:
(function(){
var Data = {};Data.Data = {};var Fay = {}; ... lots of code ... Home.main = new Fay$$$(function(){return Fay$$_(Home.alert)(Fay$$list("test"));});
;
Fay$$_(Home.main);
})();
Fay$$_(Home.main); /* Uncaught ReferenceError: Home is not defined */
生成它的Fay代码:
module Home where
import Prelude
import Fay.FFI
import Language.Fay.Yesod
import SharedTypes
alert :: String -> Fay ()
alert = ffi "window.alert(%1)"
main :: Fay ()
main = alert "test"
我怀疑Yesod-fay包添加了额外的电话,但我不确定如何避免这种情况发生。 https://github.com/fpco/yesod-fay/blob/master/Yesod/Fay.hs#L124是我认为可能涉及的功能。