Javascript 单击打开模式时,$scope丢失

Javascript 单击打开模式时,$scope丢失,javascript,angularjs,Javascript,Angularjs,当我试图在ng上打开一个模式时,单击scipe变量就会丢失 var modalInstance = $modal.open({ templateUrl: 'partials/create.html', controller: 'AppCreateCtrl', scope: $scope // <-- I added this }); var modalInstance=$modal.open({ templateUrl:'partials/create.html', 控制器:

当我试图在ng上打开一个模式时,单击scipe变量就会丢失

var modalInstance = $modal.open({
 templateUrl: 'partials/create.html', 
 controller: 'AppCreateCtrl', 
 scope: $scope // <-- I added this 
});
var modalInstance=$modal.open({
templateUrl:'partials/create.html',
控制器:“AppCreateCtrl”,

scope:$scope/您应该使用如下解析属性传递数据:

var modalInstance = $modal.open({
            templateUrl: templateSrv.templateUrl('partials/create.html'),
            controller: modalBootstrap,
            backdrop: 'static',
            keyboard: false,
            resolve: {
                data: function () {
                    var result = {};
                    result.scope = $scope;
                    return result;
                }
            }
        });

modalInstance.result.then(
            function (dataPassedFromModalConroller) {
                //this is called when the modal is closed
            },
            function (dataPassedFromModalConroller) { //Dismiss
              //this is called when the modal is dismissed
            }
        );
<div ng-controller="AppCreateCtrl">modal content here</div>
如下所示指定模态实例的控制器(我们在另一个文件中执行此操作):

您的模式模板如下所示:

var modalInstance = $modal.open({
            templateUrl: templateSrv.templateUrl('partials/create.html'),
            controller: modalBootstrap,
            backdrop: 'static',
            keyboard: false,
            resolve: {
                data: function () {
                    var result = {};
                    result.scope = $scope;
                    return result;
                }
            }
        });

modalInstance.result.then(
            function (dataPassedFromModalConroller) {
                //this is called when the modal is closed
            },
            function (dataPassedFromModalConroller) { //Dismiss
              //this is called when the modal is dismissed
            }
        );
<div ng-controller="AppCreateCtrl">modal content here</div>
此处的模态内容

您应该使用如下解析属性传递数据:

var modalInstance = $modal.open({
            templateUrl: templateSrv.templateUrl('partials/create.html'),
            controller: modalBootstrap,
            backdrop: 'static',
            keyboard: false,
            resolve: {
                data: function () {
                    var result = {};
                    result.scope = $scope;
                    return result;
                }
            }
        });

modalInstance.result.then(
            function (dataPassedFromModalConroller) {
                //this is called when the modal is closed
            },
            function (dataPassedFromModalConroller) { //Dismiss
              //this is called when the modal is dismissed
            }
        );
<div ng-controller="AppCreateCtrl">modal content here</div>
如下所示指定模态实例的控制器(我们在另一个文件中执行此操作):

您的模式模板如下所示:

var modalInstance = $modal.open({
            templateUrl: templateSrv.templateUrl('partials/create.html'),
            controller: modalBootstrap,
            backdrop: 'static',
            keyboard: false,
            resolve: {
                data: function () {
                    var result = {};
                    result.scope = $scope;
                    return result;
                }
            }
        });

modalInstance.result.then(
            function (dataPassedFromModalConroller) {
                //this is called when the modal is closed
            },
            function (dataPassedFromModalConroller) { //Dismiss
              //this is called when the modal is dismissed
            }
        );
<div ng-controller="AppCreateCtrl">modal content here</div>
此处的模态内容

确定之后,我将访问范围变量,如result.myVariableNo,在模态控制器中,您可以像$scope.scope一样访问它。注入的数据放在模态$scope$scope.scope.myVariable上,像这个模态控制器和主控制器都是同一个对象,如果您只想访问范围中的一个对象,只需传递它即可而不是整个范围确定之后,我将访问范围变量,如result.myVariableNo,在模态控制器内,您可以像$scope.scope一样访问它。注入的数据放在模态$scope$scope.scope.myVariable上,像这个模态控制器和主控制器都是sameyes,如果您只想访问范围上的一件事,把它传过去,而不是整个范围