1

我正在从我的控制器调用模态弹出窗口。它第一次工作正常,但第二次不显示。这是节目的代码

$scope.showAdvanced = function (ev) {
    var scopeVar = $scope;
    console.log('$mdDialog');
    console.log($mdDialog);
    $mdDialog.show({
        controller: DialogController,
        templateUrl: 'dialog1.tmpl.html',
        parent: angular.element(document.body),
        scope: $scope,
        targetEvent: ev,
        clickOutsideToClose: true
    }).then(function (result) {

        //$scope = $scope.$parent;
        console.log($scope);
    });

};

这是我在 DialogController 中的隐藏功能。

   $scope.hide = function () {
    console.log('hide called');
    $mdDialog.hide();
    console.log('hide completed');

};

Hide 正在成功执行,然后是 show 中定义的回调,它打印当前范围。如果我删除 scope : $scope 并放入 transclude : true 那么它不会在对话框控制器中显示数据,尽管您可以多次显示和隐藏它。

4

1 回答 1

4

添加preserveScope: true到您的模态选项。默认情况下,对话会在关闭时删除其范围。

于 2016-01-16T00:02:20.690 回答