javascript - Angularjs ng-click() 不是从 ng-repeat 指令触发

标签 javascript angularjs angularjs-directive angularjs-ng-repeat angularjs-ng-click

我尝试使用 ng-click 触发 test() 但它不起作用。不过, test() 函数在其他地方与 ng-click 一起使用,所以我假设它与它是一个 ng-repeated 指令。

See in Plunker

如何解决这个问题?

最佳答案

您的指令使用隔离作用域,因此它无权访问其父作用域。

您需要使用 & 将方法从其隔离范围传递给指令

<div ng-repeat="day in thisMonth track by $index">
    <drop-target index="$index" day="day" method="test()"></drop-target>
</div>

指令

angular.module('app.directives.dropTarget', [])
  .directive('dropTarget', function() {
  return {
    restrict: 'E',
    scope: {
      day: '=',
      index: '=',
      method: '&'
    },
    templateUrl: "calDay.html",
    controller: function($scope) {
      // not sure what this is
    }
  };
});

指令模板

<div class="dayExercise" ng-repeat="item in day.array" ng-click="method()">
  {{item}}
</div>

Demo Plunkr

关于javascript - Angularjs ng-click() 不是从 ng-repeat 指令触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35563668/

相关文章:

javascript - 我在哪里可以在 KRL 规则集中使用 $K jquery?

javascript - 想返回完整的 html,包括表格标签

JavaScript 生成器、函数* 和数组方法 forEach

javascript - AngularJs 获取从 ng-repeat 到 Javascript 变量的过滤输入?

angularjs - 当 Node JS 进程完成时使用 Socket IO 发出消息

javascript - AngularJS:使用 orderBy 对带空格的字符串进行排序

javascript - 如何准确找出 $scope.$watch 中发生的变化

javascript - 如何在同级组件指令之间传递事件

javascript - OLS 回归 JS 库

javascript - 没有特定 ng-app 模块集的 AngularJS 页面上的自定义指令