Как открыть страницу с URL-адреса внутри $mdDialog?

У меня есть следующий угловой контроллер:

.controller('DialogController', function($scope, $mdDialog, $http) {
    $scope.status = '  ';
    $scope.showAdvanced = function(ev) {
        $mdDialog.show({
            controller: DialogController,
            template: '<md-dialog>' +
                '  <md-dialog-content>' +
                '    {{data}}' +
                '  </md-dialog-content>' +
                '</md-dialog>',
            parent: angular.element(document.body),
            targetEvent: ev,
            clickOutsideToClose:true
        })
        function DialogController($scope, $mdDialog) {
            $http.get('http://www.example.com/page/test/test?id=10475').success(function(data) {
                $scope.data = data;
                $scope.closeDialog = function() {
                    var mainApp = angular.element(document.body).controller();
                    $mdDialog.hide();
                }
            }).error(function(data, status, headers, config) {
                console.log("Error in retrieving data from server");
            });
        }
    };
});

Я хочу открыть страницу с URL-адреса внутри моего диалога. Я попытался получить страницу, но получил полный HTML-код своей страницы. Как я могу открыть страницу с URL-адреса ($http.get) внутри моего $mdDialog, как если бы это было похоже на iframe?


person Mustapha Aoussar    schedule 06.11.2015    source источник
comment
Где вы хотите использовать этот html ?   -  person Rayon    schedule 06.11.2015
comment
@RayonDabre Я хочу получить свою страницу по URL-адресу внутри диалогового окна. Извините, я плохо объяснил. Я отредактировал вопрос.   -  person Mustapha Aoussar    schedule 06.11.2015


Ответы (2)


добавьте привязку данных к вашему шаблону 'dialog1.tmpl.html', например dialog1.tmpl.html

...
{{serverTemplate}}
...

а в контроллере просто установить после получения разметки

$http.get('http://www.example.com/page/test/test?id=10475').success(function(data) {
    $scope.serverTemplate = data;
    ...
person Danil Gudz    schedule 06.11.2015
comment
Большое спасибо! Но я хочу получить страницу, а не HTML страницы. Извините, я не объяснил свой вопрос. - person Mustapha Aoussar; 06.11.2015

Я просто сделал это, и это сработало:

<md-dialog-content style="height:568px;width:320px;overflow:scroll;">
<div class="md-dialog-content" id="dialog-content">
<iframe src="http://www.google.com/" frameborder="0" allowfullscreen style="position: absolute;top: 0;left: 0;width: 100%;height: 90%;" align="center"></iframe>
</div>
</md-dialog-content>

Стиль, упомянутый внутри iframe, гарантирует, что вы не получите двойную или две полосы прокрутки внутри всплывающего окна.

Самый важный вывод: никогда не закрывайте iframe вот так: <iframe /> Вместо этого всегда закрывайте вот так:

<iframe></iframe>
person Sathya    schedule 08.10.2016