ngDialog没有更新$ scope

时间:2016-04-19 14:27:05

标签: javascript angularjs ng-dialog

我正在打开一个" popup"使用

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

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

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

3 个答案:

答案 0 :(得分:0)

我对ngDialog一无所知,但我查看了documentation about the scope property

  

将传递给对话框的Scope对象。 如果您使用的话   具有单独的$ scope服务的控制器将传递给该对象   $ scope。$ parent param

您没有详细说明如何构建实际的控制器,所以我猜你可能想要访问$scope.$parent而不是普通$scope

您可能也对this question感兴趣。

答案 1 :(得分:0)

您可以按范围将数据添加到主范围。$ parent或$ scope。$ parent

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

答案 2 :(得分:0)

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

尝试

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

并且,在对话框控制器中 -

app.controller('EventSurveysCtrl', ["$scope",.... fucntion($scope,...) {
    //now the '$scope' is your main scope
}