[英]Calling class from script generated from CoffeeScript
不知道我在这里做错了什么,但还不算太远。
我使用Coffeescript创建了一个类:
# CoffeeScript
App=
Title:""
TopMenu:[]
AddTopMenu:(title,count,icon)->
Record=
Title:title
Icon:icon
Count:count
AddSubMenu:(title,icon,count) ->
Title:title
Icon:icon
Count:count
输出:
(function() {
var App;
App = {
Title: "",
TopMenu: [],
AddTopMenu: function(title, count, icon) {
var Record;
return Record = {
Title: title,
Icon: icon,
Count: count,
AddSubMenu: function(title, icon, count) {
return {
Title: title,
Icon: icon,
Count: count
};
}
};
}
};
}).call(this);
问题是,如何调用App.Title或App.AddTopMenu?
我尝试了以下方法:
<script>
App.Title="asdasd";
</script>
<script>
var test = new App();
test.Title="asdasd";
</script>
没有运气,找不到应用程序。
任何帮助都会很棒。
保罗
由于CoffeeScript生成的脚本包装在IIFE中,因此在其中声明的所有内容都不会在外部作用域中隐藏-这意味着您需要非常明确地公开自己的内容。
您可以通过多种方式来执行此操作,这基本上取决于脚本将在何处运行。 您可以将其分配给浏览器的window
,或者module.exports
给node.js的module.exports
,或者使用Require.js之类的东西来进行依赖管理。
由于看起来您将在浏览器中使用它,因此您可能需要执行以下操作:
window.App =
Title: ""
TopMenu: []
AddTopMenu: (title, count, icon)->
Record =
Title: title
Icon: icon
Count: count
AddSubMenu: (title, icon, count) ->
Title: title
Icon: icon
Count: count
它将App
附加到window
对象,以便可以从其他脚本中调用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.