这是一个简短的问题,因为我没有找到使用Google的正确答案。 好吧,我有这个Rails项目,它有很多JavaScript文件(CoffeeScript实际上),看起来得到滚动的代码就是这个......
index.html.haml
:javascript
$(document).ready(function () {
window.Application.init()
});
这就是里面的全部,我不知道该行是什么: window.Application.init()吗?你能解释一下吗?
我认为这非常重要,因为该项目主要是一堆coffescript文件,几乎没有任何服务器端处理。
提前致谢!
编辑:(我找到了Application类的代码)
class Application
# Creates the map by using the geolocation center
# Returns a deferred promise with the bounds
setup = (position) ->
deferred = new $.Deferred()
Ext.setup
glossOnIcon: false
onReady: ->
Application.mapPanel = new MapPanel(position, deferred)
Application.loading = new Ext.LoadMask( Ext.getBody(), { msg: "Loading..." } )
deferred.promise()
# Handles the geolocation error.
@onFail = ->
Ext.setup
onReady: ->
new Ext.Panel
fullscreen: true,
dockedItems: [],
items: []
Ext.Msg.confirm "Position Unavailable",
"Can not confirm your location. Would you like to go to the instructions page?",
(button) ->
document.location = if button == "no" then "/posts" else "/instructions"
@init = ->
Geolocation.onStart = (position) ->
$.when(setup(position)).pipe(Post.latest).then (data) ->
Application.mapPanel.paintPosts data
Geolocation.onUserRejected = @onFail
Geolocation.init()
window.Application = Application
答案 0 :(得分:3)
嗯...它运行的函数window.Application.init
可能附加到其他coffeescript文件中的window
。查找包含class window.Application
或window.Application =
。
答案 1 :(得分:2)
回答您的后续问题:
window.Application = Application
有效地将本地参考“应用”推广到全局符号。浏览器中的window
对象是全局范围,因此全局变量是window
属性的引用。因此,创建window
的属性并将其设置为某个值(对象,在这种情况下可能是函数;我对Coffeescript不太了解)会使该值在全局范围内可用。
答案 2 :(得分:0)
它启动使用coffeescript构建的应用程序。查看应用程序的初始化程序并逐步调试它。