使用 Konacha 进行测试时,Ember 无法访问 didLoad 回调中的控制器范围



这段代码在我的浏览器上运行得很好:

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或使用调试器来找出在哪里。如果你自己做更多的工作来缩小问题的范围,你会在这里找到更好的帮助。

相关内容

  • 没有找到相关文章