12

У меня есть угловое приложение, которое имеет всевозможные зависимости, такие как модули и стили.Включите угловое приложение в div на другом домене, no iframe

С другой стороны, у меня есть несколько сайтов, на которых я хочу включить это приложение со всеми зависимостями (например, у вас есть в iFrame). Я хочу включить приложение в div (как если бы это был iframe), но я должен быть div, без iFrame, поэтому эти другие сайты могут выбрать свой собственный стиль для встроенного приложения.

Таким образом, я могу позволить каждому сайту включать приложение, когда я добавляю его в свой CORS. как:

<div ng-include="app_from_other_domain"></div> 

При всей маршрутизации внутри этого дел.

Я не знаю, с чего начать, прочитав много документации. Любая помощь будет оценена!

+0

Не знаю, как вам мог бы сделать это с помощью ng-include, но с ng-router вы могли бы это сделать , Вам просто нужно знать точный URI HTML-блокнота, который вы хотите включить. – Kaspar

+0

Из темы, но все же, вы должны использовать страницу (на веб-сайтах поставщиков), где вы будете определять свое приложение и все объявленные зависимости, внешние css, blah, blah. Эта страница будет использоваться как IFrame на всем веб-сайте. Легко исправить проблемы (реализованы на одной странице), проблемы безопасности CORS, один и тот же домен, а также для реагирования. Использование iframes: http://npr.github.io/responsiveiframe/, это чистая лени, а IFRAME - это дешевый и немного неправильный подход. – SilentTremor

+0

Собираетесь ли вы добавить это приложение на неглавные веб-сайты? –

ответ

2

Почему бы не обернуть приложение в его собственный модуль и создать директиву для его использования? Тогда просто потребуется этот модуль в других угловых приложениях. Разве это не чище?

+0

В состав есть меню с собственными маршрутами/частичными представлениями. Таким образом, маршрутизация wil изменяет все URL-адреса на другом домене тоже .. –

1

Это невозможно, потому что, когда Angular JS выполняет цикл дайджеста, он является документированным, всегда предполагая, что в документе есть только одно приложение.

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

0

Попробуйте сделать ниже вещи

  • Создать приложение и назначить его к модулю, например .. Angular.module ('субприложение') контроллер() конфигурации();
  • Определите ваши маршруты/частичных/контроллеров и т.д.
  • Вам просто нужен доступ к главному модулю приложения, так что вы можете вводить свое имя модуля в нем
  • Вы хотите запустить приложение для погружения только поэтому назначать суб- контроллер приложения для погружения
  • Другого варианта вместо использования ngRoute или UI-маршрута для состояний и парциальных использовать JQuery, чтобы скрыть или переключаться между несколькими функциональным views.Other вы можете справиться с угловыми контроллерами
Смежные вопросы