[英]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.