Как получить значения из JSP и внедрить их в компонент Angular 5 (main.ts)

В рамках конкретного проекта мы используем WCM Jahia интегрировать наши модули Angular 5 для отображения их на различных страницах сайта.

Свойства jahia WCM, которые мы должны восстановить, чтобы интегрировать их и использовать их в наших модулях Angular 5, заключаются в восстановлении списка ключ / значение некоторых данных.

На данный момент нам удалось закодировать это решение, и оно работает (за исключением IE9):

file_name.jsp

<script type="text/javascript" src="...../dist/polyfills.bundle.js"> </script>
<script type="text/javascript" src="...../dist/vendor.bundle.js"> </script>
<script type="text/javascript" src="...../dist/main.bundle.js"> </script>

<script>
    document.addEventListener("DOMContentLoaded", function() {
        var myProperties = {
            //For example
            codes: "codes",
            labels: "labels"
        };
        window.run(myProperties);
    });
</script>

<app-myApp></app-myApp>

main.ts

window['run'] = (myProperties) => {
  platformBrowserDynamic([
    {
      provide: 'myProperties',
      useValue: myProperties
    },
    ...
  ])
    .bootstrapModule(AppModule)
    .catch(err => console.log(err));
};

Проблема в том, что это решение не работает, если мы используем IE9 (мы не можем загрузить приложение Angular 5) из-за window['run']...

Вопрос в том, есть ли другой способ получить список переменных / значений из JAHIA Jsp и вставить его в provide до bootstrapModule Угловая?

1 ответ

Решение

После некоторых исследований и нескольких капель пота, решение, наконец, найдено.

Это состоит из просто раскомментировав часть polyfills.tsфайл, который относится к браузерамIE9, IE10 и IE11.

polyfills.ts

/***************************************************************************************************
 * BROWSER POLYFILLS
 */

/** IE9, IE10 and IE11 requires all of the following polyfills. **/
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';

Я надеюсь, что это может помочь кому-то в том же случае.

Другие вопросы по тегам