Ember не может получить доступ к области контроллеров в обратном вызове didLoad при тестировании с 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 ответ

Решение

_controllers устанавливается до того, как будет определен ваш обратный вызов didLoad, поэтому я думаю, что заголовок вашего вопроса неверен (и у вас, похоже, нет полного понимания JavaScript). Ваша проблема не в том, что вы не можете получить доступ к контроллерам внутри вашего обработчика didLoad.

Ваш вывод не показывает результат console.log'ing _controllers. Я не думаю, что это вошло в обработчик didLoad вообще.

Ваш код остановился где-то после того, как он выполнил строку 96 в users_controller.js, но вам действительно нужно установить точки останова или поместить console.log или использовать отладчик, чтобы выяснить, где. Вы найдете лучшую помощь здесь, если вы сделаете больше самостоятельно, чтобы сузить проблему.

Другие вопросы по тегам