0

以下のようなディレクティブがあります-

<div data-my-param-control data-save-me="saveMe()"></div>

ディレクティブコントローラーでは、コントローラーから saveMe() 関数を分離スコープでバインドし、以下のようにします-

function MyParamControlDirective($filter,
                                 $state,
                                 $stateParams,
                                 $uibModal,
                                 ) {
return {
    restrict: 'AE',
    scope: {
        saveMe: '&',         
    },
    templateUrl: 'html/myhtml',
    controller: ['$scope', function ($scope) {  
            $scope.saveMeHandler = function () {
            var saveMe = $scope.saveMe();
            $uibModal.open({
                animation: false,
                windowTopClass: '',
                templateUrl: 'html/askmyname',
                size: 'sm',       
                resolve: {
                    saveMe: function () {
                        return saveMe;
                    }
                },                         
                controller: function (
                                        $scope,                                         
                                        $uibModalInstance,
                                        saveMe,                                         
                                        toastr                                 
                                      ) 
                {                    

                    $scope.close = function () {                            
                        $uibModalInstance.close();
                    };                        
                    $scope.saveMyName = function() {
                        $scope.submited =  true;                           
                        if ($scope.my_name != "undefined" && $scope.my_name != "") {                                                                
                            saveMe();
                            $scope.close();
                        } else {
                            toastr.error('Please enter search name');
                        }                        
                    }                        
                }
            });               
        };           
    }]
};

}

今まですべてがうまくいっています。

ディレクティブに uibModal を追加し、ポップアップを開いて名前を取得します。名前は $scope.my_name 変数にあります。ここで、この名前を関数 saveMe() に渡したいと思います。saveMe($scope.my_name); のような変数を直接渡すと、コントローラー関数で未定義と表示されます。以下はコントローラー機能です-

$scope.saveMe = function () {
    //logic here to save data
};

my_name をモーダルから saveMe メソッドに渡す方法を教えてください。前もって感謝します

4

1 に答える 1