如何将函数作为参数传递给 angularjs 控制器中的另一个函数? [英] how to pass a function as a argument to another function in a controller in angularjs?

查看:28
本文介绍了如何将函数作为参数传递给 angularjs 控制器中的另一个函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

一个很常见的问题.非常感谢帮助!!

A very common question. help is really appreciated !!

我无法将 loginCtrl 作为参数传递给 SignupCtrl

i am not able to pass loginCtrl as a argument in SignupCtrl

另外,如果有任何正确的方法可以做到这一点,请提出

Also if there is any proper way to do this please suggest

这是代码

     $scope.loginCtrl = function ($scope, $modalInstance) {
            $scope.cancelLogin = function () {
                $modalInstance.dismiss('cancel');
            }
        };

     $scope.signupCtrl = function ($scope, $modalInstance,loginCtrl){
$scope.close1=loginCtrl.cancelLogin;
            $scope.cancelLogin = function () {
                $modalInstance.dismiss('cancel');
            }
        };

推荐答案

绑定点击事件.

user.showModalDialog = function (item) {

    var obj = {
        selectedItem: item
    };
    _showModalDialog(obj);

};

_showModalDialog 方法

var _showModalDialog = function (params) {
    $modal.open({
        templateUrl: "your html template URL",
        backdrop: 'static',
        windowClass: 'modal-width-50',
        resolve: {
            params: function () { return params; }
        },
        controller: function ($scope, $modalInstance, params) {
           var user = params.selectedItem;
          // you can receive your params here in params.
          $scope.user=user;
   }

另一种方法,

var _showModalDialog = function (params) {
        $modal.open({
            templateUrl: "your html template URL",
            backdrop: 'static',
            controller: _userCtrl,
            windowClass: 'modal-width-50',
            resolve: {
                params: function () { return params; }
            }});

它的控制器在同一个文件中,它的内联控制器,你也可以把它放在外部文件中.

its controller in the same file, its the inline controller, you can also make it in external file.

var _userCtrl = ['$scope', '$modalInstance', 'params', function ($scope, $modalInstance, params) {
       var user = params.selectedItem;
       // you can receive your params here in params.
 $scope.user = user;
    }];

第二种方法是,您可以通过服务在两个控制器之间传递数据.

Second approach is, you can pass data between two controllers by use of service.

这篇关于如何将函数作为参数传递给 angularjs 控制器中的另一个函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆