2017-11-14 7 views
0

私はモーダルディレクティブを作成しました。私は$scope.myRightButton機能でeventオブジェクトをしたいangleJsディレクティブにあるメソッドにイベントオブジェクトを渡すには

var myModal = angular.module('myModal', []); 
myModal.controller('mymodalcontroller', function ($scope) { 
    $scope.header = 'Put here your header'; 
    $scope.body = 'Put here your body'; 
    $scope.footer = 'Put here your footer'; 

    $scope.myRightButton = function() { 
      // I want the event here to perform some task 
      alert('!!! first function call!'); 
    }; 
}); 
myModal.directive('modal', function() { 
    return { 
     restrict: 'EA', 
     scope: { 
      title: '=modalTitle', 
      header: '=modalHeader', 
      body: '=modalBody', 
      footer: '=modalFooter', 
      callbackbuttonleft: '&ngClickLeftButton', 
      callbackbuttonright: '&ngClickRightButton', 
      handler: '=lolo' 
     }, 
     templateUrl: 'partialmodal.html', 
     transclude: true, 
     controller: function ($scope) { 
      $scope.handler = 'pop'; 
     }, 
    }; 
}); 

、modal.My angularJsコードでボタンのクリックによってトリガーされたイベントは、以下のとおりである取得したいです。

partialmodal.htmlコードは、以下の私は、コントローラからLaunch Alertボタンクリックイベントを取得できますか

<div id="{{handler}}" class="modal fade"> 
<div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
      <h4 class="modal-title">{{header}}</h4> 
     </div> 
     <div class="modal-body"> 

      <p class="text-warning">{{body}}</p> 

     </div> 
     <div class="modal-footer"> 

      <p class="text-left">{{footer}}</p> 

      <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
      <button type="button" class="btn btn-primary" data-ng-click="callbackbuttonright()">Launch Alert</button> 

     </div> 
    </div> 
</div> 

を与えていますか?あなたのpartialmodal.htmlテンプレートとしてdata-ng-click-right-button="myRightButton($event)"

へのパラメータとしての私のモーダル実装は以下の通りである

<div ng-controller="mymodalcontroller"> 
    <modal lolo="modal1" modal-body="body" modal-footer="footer" modal-header="header" data-ng-click-right-button="myRightButton()"></modal> 
    <a href="#{{modal1}}" role="button" class="btn btn-success" data-toggle="modal">Launch Demo Modal</a> 
</div> 
+0

あなたが言ったように私が行っているが、それは$イベントはあなたがここにそれでHTTPを再生することができます 未定義であると言う:// plnkr。 co/edit/2jK2GFcKSiKgMQMynD1R?p = preview – Ari4

答えて

0

Htmlの

パス$eventon-clickメソッドを持っているあなたはそこなどから$eventを渡す必要がありますよく、

partialmodal.html

<button type="button" class="btn btn-primary" data-ng-click="callbackbuttonright($event)">Launch Alert</button> 

コントローラ

$scope.myRightButton = function (event) { 
    // I want the event here to perform some task 
    console.log(event); 
    alert('!!! first function call!'); 
}; 
+0

イベントは定義されていません。 – Ari4

+0

@ Ari4どこですか?コントローラーで? –

+0

@ Ari4上記のMyFirstButton関数はどこにありますか? –

関連する問題