0

我正在使用打开一个“弹出窗口”

$scope.dialog = ngDialog.open({ template: 'addSurveyQuestion', controller: 'EventSurveysCtrl', scope: $scope });

在模板中,我调用了一个函数,该函数创建了一个 AJAX 请求,但是当我使用它将该数据推送到 $scope时,$scope.eventSurveyQuestions.push({data here});它​​不会出现在主 $scope 中。好像有 2 个 $scope 变量,一个用于主页,一个用于 ngDialog。

如何从 ngDialog 弹出窗口中启动的进程中将数据添加到主 $scope?

4

3 回答 3

0

您可以通过 scope.$parent 或 $scope.$parent 将数据添加到主范围

可能您可以使用 $rootScope 从那里设置和获取变量值

于 2016-04-19T14:39:38.950 回答
0

我对此一无所知,ngDialog但我查看了它关于范围属性的文档

将传递给对话框的范围对象。如果您使用带有单独 $scope 服务的控制器,此对象将被传递给 $scope.$parent 参数

您并没有过多地展示您如何构建实际控制器,所以我只能猜测您可能想要访问$scope.$parent而不是 plain $scope

您可能也对这个问题感兴趣。

于 2016-04-19T14:36:42.237 回答
0

如果您从“主范围”打开对话框,则无需在 dialog.open 中使用范围。

尝试

$scope.dialog = ngDialog.open({
    template: 'addSurveyQuestion',
    controller: 'EventSurveysCtrl',
});

并且,在您的对话控制器中 -

app.controller('EventSurveysCtrl', ["$scope",.... fucntion($scope,...) {
    //now the '$scope' is your main scope
}
于 2016-04-19T14:41:18.400 回答