2017-09-25 79 views
0

我有一个angularJs的问题。 打开弹出窗口并在弹出窗口中动态添加按钮后,我不知道如何触发按钮事件。我尝试了几乎所有的东西。AngularJS事件在弹出的动态添加按钮

下面是一个例子:https://plnkr.co/edit/QfnDttJE2OnfHzt65tBQ?p=preview

+1

你不应该在angularjs中添加类似的东西,而是以jQuery的方式进行添加 - 向DOM添加元素。尝试在控制器上设置一些数组变量,它将获取你的按钮列表,即btnArray(仅限于对象列表),然后在你的按钮元素上对该btnArray执行重复操作,并显示该模式中该数组的所有内容。 – pegla

回答

0

确定给你的代码,它可以改进一下,但这个应该是固溶体: https://plnkr.co/edit/UiOsyHBjVZTW33yr6h3z?p=preview

的Javascript:

app.controller('ModalInstanceCtrl', function ($uibModalInstance,$compile) { 
     var $ctrl = this; 
     $ctrl.buttonArray = []; 

     $ctrl.cancel2 = function() { 
     $uibModalInstance.dismiss('cancel');  
     }; 

     $ctrl.add2 = function(){   
     $ctrl.buttonArray.push('message' + $ctrl.buttonArray.length) 
     }; 

     $ctrl.message = function() { 
     alert('Message'); 
     }; 

}); 

HTML:

<div ng-app="app" ng-controller="postoviCtrl as $ctrl"> 

     <script type="text/ng-template" id="modalOdabraniPost.html"> 

      <div class="modal-body"> 
         <p>Header</p> 
         <hr/> 
         <button class="btn btn-sm" type="button" ng-click="$ctrl.add2()">Add</button> 

         <div id="content"> 
          <button ng-repeat="btn in $ctrl.buttonArray" class="btn btn-primary btn-sm" type="button" ng-click="$ctrl.message()">{{btn}}</button>' 
         </div> 
      </div> 
      <div class="modal-footer"> 
       <button class="btn btn btn-primary" type="button" ng-click="$ctrl.cancel2()">Close</button> 

      </div> 
     </script> 

     <a href="" class="label label-danger" ng-click="$ctrl.open2()">Open</a> 

    </div>