Строка, которую вы публикуете здесь, не является допустимой строкой json. Допустимая строка json начинается и заканчивается на {
и }
. Так что в вашем случае это должно быть так:
{
"specification": [{
"type": [{
"type": "Smartphone , Phablet , Notch Phone , Camera Phone , Selfie Phone",
"shape": "Bar"
}],
"basic": [{
"os": "Smartphone , Phablet , Notch Phone , Camera Phone , Selfie Phone",
"Sim": "Bar"
}]
}]
}
По возможности, я предпочитаю вызывать функцию, а не отправлять событие. Это хорошо работает, если у вас есть контроль над кодом, который вы хотите запустить, но см. Ниже случаи, когда вам не принадлежит код.
window.onresize = doALoadOfStuff;
function doALoadOfStuff() {
//do a load of stuff
}
В этом примере вы можете вызвать функцию doALoadOfStuff
без отправки событие.
В современных браузерах вы можете инициировать событие , используя:
window.dispatchEvent(new Event('resize'));
Это не работает в Internet Explorer, где вам придется использовать написание:
var resizeEvent = window.document.createEvent('UIEvents');
resizeEvent.initUIEvent('resize', true, false, window, 0);
window.dispatchEvent(resizeEvent);
jQuery имеет триггер
метод , который работает следующим образом:
$(window).trigger('resize');
И имеет предостережение:
Хотя .trigger () имитирует активацию события вместе с синтезированным объектом события, он не полностью воспроизводит естественное событие.
Вы также можете имитировать события для определенного элемента ...
function simulateClick(id) {
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
var elem = document.getElementById(id);
return elem.dispatchEvent(event);
}
Ответ с RxJS
Скажи как-нибудь в Angular
size$: Observable<number> = fromEvent(window, 'resize').pipe(
debounceTime(250),
throttleTime(300),
mergeMap(() => of(document.body.clientHeight)),
distinctUntilChanged(),
startWith(document.body.clientHeight),
);
Если желательна ручная подписка (или не угловая)
this.size$.subscribe((g) => {
console.log('clientHeight', g);
})
Со времени моего первого startWith Значение может быть неверным (отправка для исправления)
window.dispatchEvent(new Event('resize'));
В скажем, Angular (я мог ..)
<div class="iframe-container" [style.height.px]="size$ | async" >..