如何将数据从ngDialog传回给调用者控制器

时间:2017-01-09 15:25:54

标签: angularjs ng-dialog

我使用AngularJS 1.3和ngDialog 0.5.9

使用与此类似的代码打开对话框:

function openDialog() {
    $scope.dataToPassToDialog = myData;
    var dialog = ngDialog.open({
        template: 'template.html',
        className: 'ngdialog-theme-default',
        scope: $scope,
    });

    dialog.closePromise.then(function (data) {

    });
}

我在对话框中有一个小表单,我需要在用户关闭对话框时传回该数据。 在对话框控制器内部,我使用:

关闭它
ngDialog.close();

我需要将一个数据对象从对话框传回给调用控制器,我无法在文档中找到任何内容,我试过了

ngDialog.close(myDataFromDialog);

但我无法以任何方式访问它。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

找到了怎么做,非常简单,我可以用ngDialog控制器

$scope.closeThisDialog(dataToPassBack);
页面控制器上的

function openDialog() {
    $scope.dataToPassToDialog = myData;
    var dialog = ngDialog.open({
        template: 'template.html',
        className: 'ngdialog-theme-default',
        scope: $scope,
    });

    dialog.closePromise.then(function (data) {
        if (data && data.value && /*check if data.value is what you want*/) {
            var dataFromDialog = data.value;
        }
    });
}

答案 1 :(得分:0)

在控制器中创建$ scope.myDataFromDialog

并在对话框中使用它

您可以在文档中找到一个示例:

https://github.com/likeastore/ngDialog

$scope.value = true;

ngDialog.open({
    template: 'externalTemplate.html',
    className: 'ngdialog-theme-plain',
    scope: $scope
});

<script type="text/ng-template" id="externalTemplate.html">
<p>External scope: <code>{{value}}</code></p>
</script>