因此,我正在为项目编写一些咖啡脚本,并试图在类中创建一些静态属性。我一直在跟踪代码库中的另一个成功完成相同操作的文件,但是我的文件无法正常工作。

我的密码

class Messages
    @toggleUnreadConversations:()->
        # This is the line in question, Messages is defined with all the
        # functions but the property ViewOnlyUnread is undefined

        Messages.ViewOnlyUnread = !Messages.ViewOnlyUnread

    @init:->
        @ViewOnlyUnread = false


代码库中的其他成功使用静态属性的代码

class Map
   @CacheRealtor: (realtor) ->
        realtor.realtor_id = parseInt(realtor.realtor_id)

        # Here the static property IdToRealtorMap is defined
        Map.IdToRealtorMap[parseInt(realtor.realtor_id)] = new Realtor()
   @Init: ->
       @IdToListingMap = []
       @IdToRealtorMap  = []


据我所知,这些init函数是在页面加载init时以相同的方式调用的。这两个类都是静态类,永远不会创建任何一个实例。有谁知道可能是什么问题?

最佳答案

init函数正在设置实例变量,但是您的toggleUnreadConversations函数正在尝试引用它,就好像它是类的属性一样。

您应该使用@引用init设置的实例变量:

class Messages
  @toggleUnreadConversations: ->

    # reference the instance variable
    @ViewOnlyUnread = !@ViewOnlyUnread

  @init: ->
    @ViewOnlyUnread = false

09-16 23:39