kongalshiva549 Ответов: 2

Работает в хроме и не работает в IE


var data = $scope.programDetails.dataSource._pristineData.filter(x => x["ID"] == id)[0];


Что я уже пробовал:

var data = $scope.programDetails.dataSource.data().filter(function (x) { x.ID == id})[0];

Richard MacCutchan

Там должен быть какой-то вопрос?

kongalshiva549

Есть ли какие-то проблемы с синтаксисом?

2 Ответов

Рейтинг:
4

Afzaal Ahmad Zeeshan

Помимо очевидного решения, которое Ричард предоставил в своем ответе, Решение 1, я рекомендую вам использовать другие современные инструменты и библиотеки, которые снимают эту боль "работает в Chrome, а не в IE", такие как Polyfill.

Полифилл.Ио[^]
Поддерживаемые браузеры ВКЛ Polyfill.io[^]

Жесткое кодирование этих условий в ваших собственных сценариях только вызовет проблемы в долгосрочной перспективе, так как вам также придется позаботиться о других браузерах/платформах/устройствах. Такие инструменты, как Polyfill, способны отнять у вас эту боль. :-)

Да, и сосредоточьтесь на написании кода, совместимого с ES6, так как он менее подвержен ошибкам по сравнению со старыми версиями JavaScript.
JavaScript ES6 — пиши меньше, делай больше[^]
Поддержка ECMAScript 2015 в Mozilla - JavaScript | MDN[^]


Рейтинг:
13

Richard Deeming

Функции стрелок[^] не поддерживаются ни в одной версии Internet Explorer.

Если вам нужна поддержка Internet Explorer, то вы не можете использовать функции со стрелками; вы должны использовать обычные функции.

var data = $scope.programDetails.dataSource.data().filter(function (x) { return x.ID == id; })[0];

Но помните, что даже Microsoft скажет вам, что Internet Explorer-это не веб-браузер!
Опасности использования Internet Explorer в качестве браузера по умолчанию - Microsoft Tech Community - 331732[^]