ckd-overlay-container не работает при открытии во всплывающем окне - PullRequest
0 голосов
/ 15 марта 2020

Я открываю компонент angular2 с angularjs как angularjs. Одно из них - мое устаревшее приложение, и у меня есть требование, когда мне нужно показать какой-то новый компонент angular2 в окне. Я нашел решение для этого, используя который я могу открыть новое окно с этим компонентом.

angular.module('myModule').factory('popupWindow', ['$rootScope', '$compile', '$window',
        function ($rootScope, $compile, $window) {
            var html = '<survey></survey>';
            var link = $compile(html); // note that compilation happens only once

            return {
                open: function () {
                    var scope = $rootScope.$new(true);

                    var w = $window.open('', '_blank', 'toolbar=0,width=1250,height=600');
                    copyStyles(document, w.document);

                    // using a cloneAttachFunction, cf. the docs and http://stackoverflow.com/questions/18064543/compile-angular-on-an-element-after-angular-compilation-has-already-happened
                    link(scope, function (cloned, scope) {                            
                        angular.element(w.document.body).append(cloned);                           
                    });
                }
            };
        }]);

Но у меня сейчас другая проблема. У этого компонента есть md-autocomplete, и когда я нажимаю на него, он открывает md-параметры, но они привязаны к основному родительскому приложению. Когда я смотрел на инструменты разработчика, cdk-overlay-container прикрепляется к родительскому приложению, а не к открытому из него дочернему окну. Любое решение для этого? https://material.angularjs.org/latest/ используется в этом. изображение прикреплено здесь

...