如何从$ mdDialog中的URL打开页面?

时间:2015-11-06 14:01:10

标签: javascript angularjs angular-material

我有以下角度控制器:

.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");
            });
        }
    };
});

我想从Dialog中的网址打开一个页面。我试图获取页面,但我得到了我的页面的完整HTML。如何从$http.get内的网址($mdDialog)打开该页面,就好像它像iframe一样?

2 个答案:

答案 0 :(得分:1)

将数据绑定添加到模板'dialog1.tmpl.html'中 dialog1.tmpl.html

...
{{serverTemplate}}
...

并在获取标记后设置的控制器中

$http.get('http://www.example.com/page/test/test?id=10475').success(function(data) {
    $scope.serverTemplate = data;
    ...

答案 1 :(得分:1)

我刚刚做了这个并且有效:

<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>