2016-04-19 5 views
0

Ich bin ein „Pop-up“ Öffnen mit

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

Innerhalb der Vorlage ich eine Funktion aufrufen, die eine AJAX-Anforderung aber auf mich schafft, dass die Daten auf $ Umfang schieben $scope.eventSurveyQuestions.push({data here}); mit Es erscheint nicht im Hauptbereich von $. Es ist so, als gäbe es 2 $ scope-Variablen, eine für die Hauptseite und eine für ngDialog.

Wie kann ich Daten zum Hauptbereich von $ innerhalb eines Prozesses hinzufügen, der aus einem ngDialog-Popup gestartet wurde?

+0

Updating Umfang $ $ parent die Lösung war. – Ste

Antwort

0

Ich weiß nichts über ngDialog, aber ich schaute in seine documentation about the scope property.

Scope-Objekt, das an den Dialog übergeben wird. Wenn Sie einen Controller mit separatem $ scope Dienst verwenden, wird dieses Objekt an $ scope übergeben. $ Parent.

Sie zeigen nicht sehr viel davon, wie Sie Ihren eigentlichen Controller gebaut, so dass ich nur $scope.$parent statt Ebene $scope zugreifen wollen erraten können, dass Sie können. Sie können außerdem interessiert sein this question.

0

Sie können Daten an den Hauptbereich hinzufügen, indem Umfang. $ Parent oder Umfang $. $ Parent

Möglicherweise Sie $ rootScope können Sie einstellen, und Variablen Werte von dort

0

Keine Notwendigkeit zu verwenden Umfang erhalten in dialog.open, wenn Sie Ihren Dialog von 'Hauptbereich' öffnen.

Versuchen

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

und im Dialog Controller -

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