这段代码在我的浏览器上运行得很好:
doLogin: (user) ->
_controllers = @get('controllers')
res = Cluey.Order.find({table: null, user: user.get('id')})
res.on 'didLoad', =>
order = @objectAt(0)
console.log _controllers
_controllers.get('order').set('model', order)
但是当我用Konacha测试我的应用程序时,它抛出了这个奇怪的输出:
Hi, we are the controllers ! users_controller.js:95
Class {controller: Class, toString: function, constructor: function, controller: null, unknownProperty: function…} users_controller.js:96
Uncaught Error: assertion failed: calling set on destroyed object
_controllers是在你的didLoad回调被定义之前设置的,所以我认为你的问题标题是不正确的(你似乎对JavaScript没有一个完整的理解)。你的问题不在于你不能访问didLoad处理程序中的控制器。
你的输出没有显示console. logging _controllers的结果。我认为它根本没有进入didLoad处理器
在users_controller.js中执行第96行之后,您的代码在某处停止了,但是您确实需要设置断点或放置console.log或使用调试器来找出在哪里。如果你自己做更多的工作来缩小问题的范围,你会在这里找到更好的帮助。