我似乎无法引用属性上定义的函数内部的父项。
SocketMixin = Ember.Mixin.create
thing: (->
'dougs'
).property()
getThing: ->
console.log @ # window object
@get('thing') # Uncaught TypeError: undefined is not a function
sameWithFatArrow: =>
console.log @ # window object
@get('thing') # Uncaught TypeError: undefined is not a function
printThing: ->
@get('getThing')() # call the above function
计算属性没有问题
thingProp: (->
@get('thing')
).property()
工作正常。
我一直试图通过在params中传递@来解决问题,但我非常确定必须有一种更好的方法来调用这些函数。
getThing: (self) ->
console.log @ # window object
self.get('thing') # Uncaught TypeError: undefined is not a function
printThing: ->
@get('getThing')(@) # call the above function
真的,我想做的就是调用一个方法。它应该比所有这一切更加紧张!?!?
答案 0 :(得分:2)
您正在窗口范围内调用该函数。不要使用getter,只需调用func即可。只有在处理属性时才需要getter和setter。函数仍然以相同的方式调用。
printThing: ->
@getThing() # call the above function