2017-11-01 1 views
0

こんにちは私は、すべての画面で削除機能に使用される共通のカスタム指示を作成したので、ビューを更新するためにコントローラの関数を呼び出す必要がある要素を削除した後、ビューに基づいています。角度1のカスタムディレクティブからどのコントローラ関数(コントローラは動的かもしれません)を呼び出す方法は?

angular.module('app.comon').directive('deletePopup', function modal(setterGetterService,restCallService) { 
     return { 

      template:'<div class="modal" id="delete-popup">' + 
         '<div class="modal-dialog">' + 
         '<div class="modal-content">' + 
          '<p>Are you sure want to delete ?</p>' + 
          '<div class="buttons-group text-center">' + 
          '<a ng-click="deleteList();" class="btn">delete</a> ' + 
          '<a ng-click="cancelAction()" class="btn btn-cancel">cancel</a> ' + 
          '</div>' + 
         '</div>' + 
         '</div>' + 
        '</div>', 

      link: function (scope, element, attrs) { 
       scope.cancelAction = function() { 
        $('#delete-popup').hide(); 
       } 

       var dropper; 

       scope.$on("DELETE_LIST", function(event, item){ 
        dropper = item; 
       }); 

       scope.deleteList = function() { 

        var deleteInfo =setterGetterService.getDeletePopupInfo(); 
    var headers =deleteInfo.headers; 
        var params = { 
         "URL" :deleteInfo.restCall , 
         "METHOD" : deleteInfo.method, 
        } 

        restCallService.getResponse(headers, params) 
         .then(function(data) { 
         if (data.status == "success") { 
          alert("groupDeleted");  
          $('#delete-popup').hide();   
         } else { 
          alert(data.msg); 
         } 

        }); 

       } 
      } 
     } 
    }); 

答えて

0

あなたが求めているのは、他のコントローラと話す正しい方法ではありません。 実際に行うべきことは、あるアクションを実行する必要がある状況について他のコントローラに通知するイベントを発行することと同じくらい簡単です。

+0

はい、あなたの提案に感謝します。Marcin Malinowski ..)。 –

関連する問題