很高兴在某些rails应用程序中开始使用coffescript。 但是,经过一些项目,有些困难。
下面的代码翻译得很好,但咖啡没有做任何事情
JS:
(function(){
var wf = document.createElement('script');
wf.src = "/assets/libraries/webfonts.js";
wf.type = 'text/javascript';
wf.async = 'true';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(wf, s);
})();
WebFontConfig = {
custom:{
families: ['tb', 'tr'],
urls: [ '/assets/1.fonts.css' ]
}
}
咖啡:
(->
wf = document.createElement("script")
wf.src = "/assets/libraries/webfonts.js"
wf.type = "text/javascript"
wf.async = "true"
s = document.getElementsByTagName("script")[0]
s.parentNode.insertBefore wf, s
)()
WebFontConfig = custom:
families: ["tb", "tr"]
urls: ["/assets/1.fonts.css"]
我可以列出其他例子,但我经常面对“js works / coffee not not”问题
答案 0 :(得分:4)
您的咖啡代码将转换为这样的javascript:
(function(){
var WebFontConfig;
(function() {
var s, wf;
wf = document.createElement("script");
wf.src = "/assets/libraries/webfonts.js";
wf.type = "text/javascript";
wf.async = "true";
s = document.getElementsByTagName("script")[0];
return s.parentNode.insertBefore(wf, s);
})();
WebFontConfig = {
custom: {
families: ["tb", "tr"],
urls: ["/assets/1.fonts.css"]
}
};
})
如您所见,您使用的是上下文的WebFontConfig,而不是窗口上下文。
所以,我建议你做这样的事情:
window.WebFontConfig = custom:
families: ["tb", "tr"]
urls: ["/assets/1.fonts.css"]
我坚信这会解决您的问题。 此外,您的Coffee文件已执行,它只是没有按预期执行。
希望它有所帮助。