親スコープが破棄されるかどうかを確認したいのですが、子スコープも破棄されますか?
この質問をするのは、いくつかのモーダル ダイアログを作成するために ngdialog を使用しているためです。A -> B の 2 つのダイアログがあり、Web ページからダイアログ A を開くことができます。ダイアログ A はダイアログ B の親であり、A のボタンをクリックして B を開きます。
ダイアログ B を開き、同時に A (B の親) を閉じたいのですが、スコープ B のデータがすべて欠落しています。なので多分これが原因だと思います。これについて理解を深めるために誰か助けてもらえますか?
dialogACtrl :
$scope.selectServer = function (serverType) {
$scope.serverType = serverType;
$scope.closeThisDialog('close'); //close current dialog
var newScope = $scope.$new(true);
var modalInstance;
modalInstance = ngDialog.openConfirm({
template: 'servers/templates/dialog-b.tpl.html',
scope: newScope,
controller: 'dialogBCtrl',
resolve: {
serverData: function () {
return null;
},
delegate: callbackWrapper
}
});
siteScopeModalInstance.result.then(callback);
ngDialog ソース:
open: function (opts) {
...
scopes[dialogID] = scope = angular.isObject(options.scope) ? options.scope.$new() : $rootScope.$new();
performCloseDialog: function ($dialog, value) {
...
scope.$destroy();