【问题标题】:ng-click not working in bootstrap popover contentng-click 在引导弹出窗口内容中不起作用
【发布时间】:2016-08-19 18:25:53
【问题描述】:

我想在弹出窗口中显示一个可点击的表格,并在其中一行被点击时调用一个函数。我的 html 看起来像这样:

<a popover  id="showDays"
    type="button"
    class="btn btn-success btn-xs pull-left"
    data-toggle="popover"
    data-placement="right"
    data-html="true"
    title="Popover title"
    data-content=
    '<table class="table table-condensed">
       <tbody>
         <tr ng-repeat="d in days" ng-click="show(111)">
           <td ng-bind="d"></td>
           <td ng-bind="x"></td>
         </tr>
       </tbody>
     </table>'>
      <i class="fa fa-clock-o fa-lg">Click me</i>
 </a>

还有我的 script.js: var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {
  $scope.days = [
  'Sunday',
  'Monday',
  ];
  $scope.show = function(x) {
    console.log("show called with " + x);
    $scope.x = x;
  }
}).directive('popover', function($compile, $timeout){
  return {
    restrict: 'A',
    link:function(scope, el, attrs){
      var content = attrs.content;
      var elm = angular.element('<div />');
      elm.append(attrs.content);
      $compile(elm)(scope);
      $timeout(function() {
        el.removeAttr('popover').attr('data-content',elm.html());
        el.popover();
       });
    }
  }
});

Demo here

代码是从这个question 复制的,答案本身可以正常工作,但是我的show 函数没有被调用。知道为什么吗?

【问题讨论】:

  • 标记为“为什么这段代码不起作用”
  • @AlexandreMartin,这是什么意思?我应该怎么问这个问题?
  • 你没有使用ui-bootstrappopover元素
  • @PankajParkar,不,我只想使用引导程序,它应该能够做到这一点。

标签: javascript angularjs twitter-bootstrap


【解决方案1】:

我发现了问题,由于某种原因,指令未能将函数showscope 绑定,但成功与days,我已经尝试了一些东西,如果我改变@987654325 的方式写了@函数,ng-click可以工作,但ng-repeat不行,这意味着在这种情况下绑定days失败。

更新后的DEMO 使用 templateUrl 而不是 data-content 属性

<script type="text/ng-template" id="popover-content">
     <table class="table table-condensed">
       <tbody>
         <tr ng-repeat="d in days" role="button" ng-click="show(111)">
           <td ng-bind="d"></td>
           <td ng-bind="x"></td>
         </tr>
       </tbody>
     </table>
    </script>

现在 ng-repeat 和 ng-click 对我来说都可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    相关资源
    最近更新 更多