在我的客戶我有以下代碼Serverside集團方法拋出的方法調用的錯誤,而不是在客戶端
# If clicking on unit while target is set, activates action
'click .actor':() ->
character = Meteor.user().character()
target = Session.get('target')
skill = Session.get('selectedSkill')
if target and skill
console.log character.battle()
Meteor.call('useSkill', skill, character, target, (err) ->
if err then console.log err.reason
)
在這裏,當我調用character.battle()
,它正確地返回戰場文件。但是,當我調用相同的方法,對同一對象,在useSkill()
方法,它引發以下錯誤
Exception while invoking method 'useSkill' TypeError: Object #<Object> has no method 'battle'
Serverside集團法
useSkill: (skill, actor, target) ->
cost = skill.cost
console.log "battle: #{actor.battle()}"
....
和聯想的battle()
「的方法
@Characters = new Meteor.Collection('characters',
transform: (entry) ->
entry.battle =() ->
Battles.findOne({active: true, $or: [{characterOneId: this._id}, {characterTwoId: this._id}]})
return entry
)
你宣佈對'server'和''client'收集Characters'? – 2014-09-11 10:22:43
我聲明它在一個lib文件夾中,所以它應該在 – Tarlen 2014-09-11 10:26:21