angularjs - 如果子作用域的父作用域被销毁,子作用域会发生什么

标签 angularjs angularjs-scope ng-dialog

我想问如果父作用域销毁了,子作用域也会被销毁吗?

我问这个问题是因为我正在使用 ngdialog 创建一些模式对话框。 有2个对话框,A -> B,我们可以从网页中打开对话框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();

最佳答案

当父作用域被销毁时,它基本上会级联销毁其子作用域树。

关于angularjs - 如果子作用域的父作用域被销毁,子作用域会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33609510/

相关文章:

javascript - AngularJS 访问 JSON array[n].property 数据

javascript - 如何关闭 Angular 中点击 body 时的所有弹出窗口?

javascript - 在 Angular 应用程序中加载 Highcharts

javascript - Angular js - ngDialog 如何从 Controller 打开对话框?

angularjs - Uncaught Error : [$injector:cdep] use ngdialog in factory

javascript - 使用 AngularJS 在窗口调整大小时调整 div 大小

javascript - MomentJS 将格式从 YYYYMMDD 更改为

javascript - 带切换按钮的 Angular 动画

javascript - 从 .then() 内更新 ng-show

css - ngDialog 定位和大小调整