Примечание: Я НЕ обновляю приложение ng1. Я пытаюсь заставить приложение ng1 и ng2 жить бок о бок (или, скорее, вложенный).Как внедрить автономное приложение с угловым 2 внутри приложения с угловым 1
У нас есть примерно следующий HTML, показывающий, как мы пытаемся использовать две рамку на странице сразу:
- Угловые 1: Вся страница контролируются Угловой 1. Но мы использовали ng- non-bindable, чтобы сообщить ng1-приложению игнорировать div в середине страницы.
- Угловые 2: Только элемент в середине страницы должен быть бутстрапированным в Угловом 2.
<html ng-app="app">
<head></head>
<body ng-controller="appController">
<header>Angular 1 Stuff</header>
<div ng-non-bindable>
<ng2-app></ng2-app>
<script src="bundle.js"/>
<!-- bundle.js is the output from webpack and should bootstrap <ng2-app> -->
</div>
<footer>Angular 1 Stuff</footer>
</body>
</html>
Нашего приложение работает просто отлично, когда мы запустим его самостоятельно, без пытаясь интегрироваться в эту страницу приложения ng1.
Когда мы запускаем его после интеграции, мы получаем сообщение о том, что существует конфликт с глобальным методом require
.
- Применение ng1 является использованием
requirejs
- The NG2 пучка является типичным выходом из
webpack
(с использованиемtypescript-loader
)
Оба requirejs и WebPack использования require
, но в разных контекстов.
Как разрешить конфликт?
Если вам интересно, почему мы делаем это так: мы пытаемся загрузить новое приложение на странице, которая также имеет приложение с угловым 1. Наша компания имеет глобальный верхний/нижний колонтитул и содержимое каждой страницы в виде отдельных развернутых приложений. Это позволяет командам работать на страницах как самостоятельные проекты. Одна команда хочет попробовать использовать Angular 2 для своего нового приложения на одной из наших новых страниц.
это не представляется возможным гнездо два угловых 1 приложение внутри друг друга, я могу только предположить, что это будет сложно или невозможно, чтобы попытаться сделать это с угловым 2. При этом, угловой 1 не используйте 'requirejs', поэтому, если конфликт с этой библиотекой, то это имеет какое-то отношение к тому, как было написано ваше угловое приложение 1, и не имеет никакого отношения к самому угловому. – Claies