Итак, у меня есть обработчик событий jquery, привязанный к window
, я удаляю его в willDestroyElement
, но вызов события сразу после него в тестовых триггерах вызывает обратный вызов в любом случае (добавление некоторой задержки в тесте фиксирует вещи, но это не кажется правильным ...)Ember.js: удаление обработчика событий в `willDestroyElement` не происходит во времени
_detachHandlers: Ember.on('willDestroyElement', function() {
$(window).off('resize');
})
тест:
this.render(hbs`
{{#if show}}
{{#my-component timesCalled=(mut timesCalled)}}
<button class='button'>Click me!</button>
{{/my-component}}
{{/if}}
`);
assert.ok(this.$('button.button').length, 'renders button');
run(() => $(window).trigger('resize'));
assert.equal(this.get('timesCalled'), 1, "callback worked one time");
run(() => this.set('show', false));
assert.notOk(this.$('button.button').length, 'component disappears');
run(() => $(window).trigger('resize'));
assert.equal(this.get('timesCalled'), 1, "callback detached and counter doesn't change");
Я думаю, мне нужно завернуть что-то в перспективе, но что? Пробовал много подходов, которые казались значимыми, но ничего не работало.
Не имеет значения –