Я изо всех сил пытаюсь найти способ открыть новое окно внутри обещания then()
после создания записи магазина и сохранения.Ember открыть новое окно, избегая блокировки всплывающих окон в успешном обещании
Следующий код заблокирован блокировщик всплывающих окон Хрома
var obj = this.get('store').createRecord('user', {
first_name: 'John',
last_name: 'Smith'
});
obj.save()
.then(function (user) {
window.open('http://google.com', '_blank'); // this is blocked by chrome pop-up blocker
})
.catch(function (error) {
this.set('errors', error.errorArray); // display errors in the template
});
Этот код работает и обходит блокировку всплывающих окон, но моя проблема заключается в том, что если бэкенд выбрасывает ошибки во время сохранения, я не хочу чтобы открыть новое окно, так как в конце пользователь не был успешно создан, и я хочу, чтобы они все еще находились в главном окне, где они могли видеть ошибку. Я могу закрыть окно, если я получу ошибки, но это не кажется правильным, так как это будет выглядеть как мгновенное открытие и закрытие окна.
var window_handle = window.open('', '_blank');
var obj = this.get('store').createRecord('user', {
first_name: 'John',
last_name: 'Smith'
});
obj.save()
.then(function (user) {
window_handle.location.href = 'http://google.com'; // this is NOT blocked by chrome pop-up blocker
})
.catch(function (error) {
this.set('errors', error.errorArray); // display errors in the template
});
У кого-нибудь есть идея?