Нужно вызвать функцию, определенную в приложении angulajs внутри компонентаactjs - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть две службы (или приложения), написанные с использованием NextJS, которые производят какой-то HTML-код на стороне сервера, необходимые файлы JS и CSS.Каждый из этих двух сервисов возвращает реагирующее приложение.Существует родительское приложение AngularJS, которое извлекает необходимый HTML-код (с включенными стилями и сценариями), вызывая сервис http и вставляя необработанный HTML-файл в приложение AngularJS.Все до этого момента работает нормально, за исключением того, что я нахожусь в точке, где приложение React должно что-то сказать части AngularJS.Внутри приложения React есть кнопка, которая при нажатии должна что-то делать в угловой части.

Угловая часть выглядит следующим образом (я не включил функцию, которую я хотел бы, чтобы реактивная часть выполняла при нажатии кнопки):

    controller: function ($scope, $window, $sce, Toaster, Restangular, AuthService, User, LeadModel, LocaleService) {
        var lead = LeadModel.getCurrentLead();

        var getDeskingToken = function() {
            return AuthService.getLightToken(lead.organizationUnitId).then(function (token) {
                return token;
            });
        };

        $scope.System = System;

        $scope.quotewidget = { html: null }; 

        function renderWidget (html) {
            $scope.quotewidget.html = $sce.trustAsHtml(html);
        }

        function importWidget() {
            // getDeskingToken().then(function(token){}) // we can use this once we parse the jwt token
            Restangular.all('quotewidget/data').get([]).then(function(response){
                return response.plain().body
            })
            .then(function(html) {
                return renderWidget(html);
            })
            .catch(function(error){
                Toaster.error('quote widget ' + String(error));
            });
        }

        $scope.$watch(function() {
                return $window.System;
            }, importWidget);

    }

Что возвращается из вызова Restrictк сервису относится HTML, который также включает в себя некоторые элементы, и поэтому браузер загружает все это и запускает сценарии.

У кого-нибудь есть идея для внедрения чистого решения?Как кнопка внутри компонента реагирования может выполнить функцию, определенную в угловых значениях, после того как все компоненты React уже отрисованы?

Я ищу решение, которое не загрязняет объект окна.

У меня есть доступ ко всему исходному коду сервиса.Так что я мог бы также включить некоторый пользовательский код в часть реакции, если это будет необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...