Я открываю всплывающее окно, используя
$scope.dialog = ngDialog.open({ template: 'addSurveyQuestion', controller: 'EventSurveysCtrl', scope: $scope });
Внутри шаблона я вызываю функцию, которая создает запрос AJAX, но при этом $scope.eventSurveyQuestions.push({data here});
эти данные в область $ scope, используя $scope.eventSurveyQuestions.push({data here});
он не отображается в основном $ scope. Он как будто есть переменные области $ 2, одна для главной страницы и одна для ngDialog.
Как я могу добавить данные в основную область $ из процесса, который был инициирован из всплывающего окна ngDialog?
Я ничего не знаю о ngDialog
но я просмотрел его документацию о свойстве scope.
Объект Scope, который будет передан в диалог. Если вы используете контроллер с отдельной службой $ scope, этот объект будет передан в $ scope. $ Parent param.
Вы не очень хорошо представляете, как вы построили свой фактический контроллер, поэтому я могу просто предположить, что вам может понадобиться доступ к $scope.$parent
вместо простой $scope
.
Вас также может заинтересовать этот вопрос.
Не нужно использовать область в dialog.open, если вы открываете диалог из "основной области".
Пытаться
$scope.dialog = ngDialog.open({
template: 'addSurveyQuestion',
controller: 'EventSurveysCtrl',
});
и в вашем диалоговом контроллере -
app.controller('EventSurveysCtrl', ["$scope",.... fucntion($scope,...) {
//now the '$scope' is your main scope
}
вы можете добавить данные в основную область по областям. $ parent или $ scope. $ parent
Возможно, вы можете использовать $ rootScope для установки и получения значений переменных