如何在data-ng-click中传递调用动态方法而不是静态方法(即想要传递要调用的方法而不是固定的delete()方法

How to pass call a dynamic method instead of static method in data-ng-click (i.e want to pass a method to be called instead of fixed delete() method)

本文关键字:方法 调用 delete 静态方法 data-ng-click 动态      更新时间:2023-09-26
angular.module('Testmodule').directive
('mymodalwindow', function () {   
 return {
        restrict: 'E',
        template: '<div class="modal" id="mytestModal" role="dialog"  aria-labelledby="myModalLabel">' +
     '       <div class="modal-dialog modal-sm ">' +
    '                <div class="modal-content">' +
      '              <div class="modal-header">' +
       '                 <h4 class="modal-title" id="myModalLabel">Confirmation</h4>' +
        '            </div>' +`enter code here`
         '           <div class="modal-body">' +
         '              Do you want to delete the {{screenname}} "{{selecteditemtest}}" ?' + 
           '         </div>' +
            '        <div class="modal-footer">' + 
             '           <button type="button" id="btn" class="btn btn-default" data-ng-click="delete()"data-dismiss="modal">Delete</button>' +
              '          <button type="button" id="btn" class="btn btn-default" data-dismiss="modal">Cancel</button>' +
               '     </div>' +
                '</div>' +
            '</div>' +
        '</div>'
    };
});

//如何调用作为参数传递的方法,而不是调用data-ng-click

中的固定方法
<div my-modal-window on-delete="onDelete()"></div> //You can pass params here . onDelete() function can be any function in your controller

指令代码
    angular.module('Testmodule').directive('mymodalwindow', function () {
    return {
        restrict: 'E',
        scope: {
            onDelete: '&'
        },
        link: function (scope, elem, attrs) {
            scope.delete = function () {
                scope.onDelete(); // You can pass parameter like scope.onDelete({param1:'dsadasd',param2:'sadasjdlkjakl'}); 
            }
        },
        template: '<div class="modal" id="mytestModal" role="dialog"  aria-labelledby="myModalLabel">' +
            '       <div class="modal-dialog modal-sm ">' +
            '                <div class="modal-content">' +
            '              <div class="modal-header">' +
            '                 <h4 class="modal-title" id="myModalLabel">Confirmation</h4>' +
            '            </div>' + `enter code here`
        '           <div class="modal-body">' +
        '              Do you want to delete the {{screenname}} "{{selecteditemtest}}" ?' +
        '         </div>' +
        '        <div class="modal-footer">' +
        '           <button type="button" id="btn" class="btn btn-default" data-ng-click="delete()"data-dismiss="modal">Delete</button>' +
        '          <button type="button" id="btn" class="btn btn-default" data-dismiss="modal">Cancel</button>' +
        '     </div>' +
        '</div>' +
        '</div>' +
        '</div>'
    };
});