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 или использовать отладчик, чтобы выяснить, где. Вы найдете лучшую помощь здесь, если вы сделаете больше самостоятельно, чтобы сузить проблему.