程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了AngularJS $ modalInstance-我可以在一个控制器中执行此操作吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决AngularJS $ modalInstance-我可以在一个控制器中执行此操作吗??

开发过程中遇到AngularJS $ modalInstance-我可以在一个控制器中执行此操作吗?的问题如何解决?下面主要结合日常开发的经验,给出你关于AngularJS $ modalInstance-我可以在一个控制器中执行此操作吗?的解决方法建议,希望对你解决AngularJS $ modalInstance-我可以在一个控制器中执行此操作吗?有所启发或帮助;

我一直在同一个问题上挣扎,而我想到的最好的办法就是使用匿名函数作为模式控制器。这样,所有逻辑都在同一控制器中,您不必为每个模式窗口创建单独的控制器。

看起来像这样

(function(){
    var app = angular.module('ngModalDemo', ['ui.bootstrap']) 
    .controller('formController', function($scope, $modal){
        $scope.openModal = function () {                        
            var modalinstance = $modal.open({
                templateUrl: 'SomeModal.HTML',
                controller: [
                    '$scope', '$modalinstance', 'data', function($scope, $modalinstance, data) {
                        $scope.data = data;
                        $scope.ok = function() {
                            $modalinstance.close();
                        };
                        $scope.closeModal = function() {
                            $modalinstance.dismiss();
                        };
                    }
                ]
            });
        };
    })
})();

PS。尚未测试上面的代码,只需将其与您提供的代码以及我的一个项目的片段放在一起。

解决方法

我花了一些时间在AngularJS
Bootstrap弹出窗口上玩耍,并且意图很不错,但是我想做的就是将它绑定,并且它的依赖脚本绑定到同一控制器,我无法正常工作现在是关闭按钮。如果我创建一个NEW控制器,并注入$
modalInstance,它可以很好地工作,并且我可以连接关闭按钮而没有任何问题,但是我不想要第二个控制器,这似乎过于复杂:我想要所有的控制器逻辑在formController中。

为什么我实际上要两个控制器?在我看来,在两个控制器之间传递范围似乎太过分了,项目越大,变得越难以管理。我是否在试图不必要地简化它?:)

剧本:

(function(){
    var app = angular.module('ngModalDemo',['ui.bootstrap']) 
    .controller('formController',function($scope,$modal){
        $scope.openModal = function () {                        
            var modalInstance = $modal.open({
                templateUrl: 'SomeModal.html',controller: 'formController'                                            
            });
        };
        $scope.closeModal = function () {
            //  Code needed here :)
        };
    })
})();

HTML正文(出于演示目的,请使用脚本中的HTML):

    <div ng-controller="formController">
        <button class="btn btn-default" ng-click="openModal()">Let's do some stuff!</button>

        <script type="text/ng-template" id="SomeModal.html">
            <div class="modal-header">Do some stuff in this modal y'all.</div>
            <div class="modal-footer">
                <button class="btn btn-info" ng-click="closeModal()">Close</button>
            </div>
        </script>
    </div>

答案基于Kaspars的输入:)

    (function(){
            var app = angular.module('ngModalDemo',['ui.bootstrap']) 
            .controller('formController',$modal,$log){
                $scope.openModal = function () {                        
                    var modalInstance = $modal.open({
                        templateUrl: 'SomeModal.html',controller: [
                            '$scope','$modalInstance',$modalInstancE){
                                $scope.closeModal = function () {
                                    $modalInstance.close();
                                };
                            }
                        ]                           
                    });
                };
            })
        })();

大佬总结

以上是大佬教程为你收集整理的AngularJS $ modalInstance-我可以在一个控制器中执行此操作吗?全部内容,希望文章能够帮你解决AngularJS $ modalInstance-我可以在一个控制器中执行此操作吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。