Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在AngularJS UI引导模式中调用另一个控制器_Angularjs_Angular Ui Bootstrap - Fatal编程技术网

在AngularJS UI引导模式中调用另一个控制器

在AngularJS UI引导模式中调用另一个控制器,angularjs,angular-ui-bootstrap,Angularjs,Angular Ui Bootstrap,根据这里的示例,我有一个完全工作的ui.bootstrap.modal版本,但我想进一步将其添加到控制器配置中 也许我做得太过分了(或者做错了),但我不是一个正义的粉丝 var ModalInstanceCtrl = function ($scope... 我的模态开放控制器: var controllers = angular.module('myapp.controllers', []); controllers.controller('ModalDemoCtrl', ['$scope

根据这里的示例,我有一个完全工作的ui.bootstrap.modal版本,但我想进一步将其添加到控制器配置中

也许我做得太过分了(或者做错了),但我不是一个正义的粉丝

var ModalInstanceCtrl = function ($scope...
我的模态开放控制器:

var controllers = angular.module('myapp.controllers', []);


controllers.controller('ModalDemoCtrl', ['$scope', '$modal', '$log',
    function($scope,  $modal, $log) {

        $scope.client = {};

        $scope.open = function(size) {
            var modalInstance = $modal.open({
                templateUrl: 'templates/modals/create.html',
                controller: ModalInstanceCtrl,
                backdrop: 'static',
                size: size,
                resolve: {
                    client: function () {
                        return $scope.client;
                    }
                }
            });

            modalInstance.result.then(function (selectedItem) {
                $log.info('Save changes at: ' + new Date());
            }, function () {
                $log.info('Closed at: ' + new Date());
            });
        };
    }
]);
var ModalInstanceCtrl = function ($scope, $modalInstance, client) {

    $scope.client = client;

    $scope.save = function () {
        $modalInstance.close(client);
    };

    $scope.cancel = function () {
        $modalInstance.dismiss('cancel');
    };
};
模态实例控制器:

var controllers = angular.module('myapp.controllers', []);


controllers.controller('ModalDemoCtrl', ['$scope', '$modal', '$log',
    function($scope,  $modal, $log) {

        $scope.client = {};

        $scope.open = function(size) {
            var modalInstance = $modal.open({
                templateUrl: 'templates/modals/create.html',
                controller: ModalInstanceCtrl,
                backdrop: 'static',
                size: size,
                resolve: {
                    client: function () {
                        return $scope.client;
                    }
                }
            });

            modalInstance.result.then(function (selectedItem) {
                $log.info('Save changes at: ' + new Date());
            }, function () {
                $log.info('Closed at: ' + new Date());
            });
        };
    }
]);
var ModalInstanceCtrl = function ($scope, $modalInstance, client) {

    $scope.client = client;

    $scope.save = function () {
        $modalInstance.close(client);
    };

    $scope.cancel = function () {
        $modalInstance.dismiss('cancel');
    };
};
但是,我想将最后一个控制器更改为:

controllers.controller('ModalInstanceCtrl', ['$scope', '$modalInstance', 'client',
    function ($scope, $modalInstance, client) {

        $scope.client = client;


        $scope.save = function () {
            $modalInstance.close(client);
        };

        $scope.cancel = function () {
            $modalInstance.dismiss('cancel');
        };
    }
]);
如果我还更新$scope.open内的控制器引用,则ModalDemoCtrl控制器将

controller: controllers.ModalInstanceCtrl
然后没有错误,但是模式窗口中的保存和取消按钮不再工作


有人能指出我错在哪里吗?可能是根本不了解AngularJS中控制器的工作方式

您正在将模块引用到变量控制器

角度系统中的所有控制器都有唯一的名称


控制器仍然是“ModalInstanceCtrl”而不是“.ModalInstanceCtrl”。

在$scope中指定的控制器。打开它周围所需的单引号

 controller: 'ModalInstanceCtrl',

我猜将模块引用称为控制器的惯例是不正确的。谢谢@karuthan,但如果我将其引用为控制器。ModalInstanceCtrl我没有收到任何错误,但同样地,它也不起作用。如果我将其引用为ModalInstanceCtrl,则会得到错误:ReferenceError:ModalInstanceCtrl未定义Chris请尝试此插件**在控制器上尝试“ModalInstanceCtrl”。angular负责注射。:-)再次感谢@karuthan-结果我只需要在控制器名称周围加上一个引号,一切都正常了。你的plunker真的很有帮助,因为我进行了分叉和调试,使它尽可能接近我的示例。