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

时间:2013-05-24 16:47:15

标签: javascript testing ember.js ember-data konacha

此代码在我的浏览器上完美运行:

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 

这怎么可能?

1 个答案:

答案 0 :(得分:-1)

_controllers在你的didLoad回调被定义之前被设置,所以我认为你的问题标题是不正确的(你似乎没有完全理解JavaScript)。您的问题不在于您无法访问didLoad处理程序中的控制器。

您的输出未显示console.log'ing _controllers的结果。我认为它根本没有进入didLoad处理程序。

你的代码在users_controller.js中执行第96行后停在了某处,但是你真的需要设置断点或放置console.log或使用调试器找出位置。如果你自己做更多的事情来缩小问题范围,你会在这里找到更好的帮助。