ng-repeat中的AngularJS指令范围绑定问题

时间:2015-03-30 07:10:18

标签: javascript angularjs angularjs-directive

我的指令是秒表。它被置于ng-repeat下,因此用户可以创建他需要的多个秒表。所有这些秒表都有自己的播放/暂停和停止按钮。 面临的问题是当用户启动第一个秒表所有其他手表开始运行时,但从最后一个手表开始时它工作正常。我在这做错了什么。Find the plunker

我的链接功能:完整的工作代码在plunker

  link: function(scope, element, attrs, ctrl) {

  var start_button = angular.element(document.querySelector('.play'));
  var pause_button = angular.element(document.querySelector('.pause'));
  var stop_button = angular.element(document.querySelector('.stop'));

  start_button.on('click', ctrl.start);
  pause_button.on('click', ctrl.pause);
  stop_button.on('click', ctrl.stop);
  scope.$on('$destroy', function () {
    start_button.off('click', ctrl.start);
    pause_button.off('click', ctrl.pause);
    stop_button.off('click', ctrl.stop);
  });

},

1 个答案:

答案 0 :(得分:2)

我在你的指令模板中看到你有一个ng-click,所以可以删除这段代码

 var start_button = angular.element(document.querySelector('.play'));
  var pause_button = angular.element(document.querySelector('.pause'));
  var stop_button = angular.element(document.querySelector('.stop'));

  start_button.on('click', ctrl.start);
  pause_button.on('click', ctrl.pause);
  stop_button.on('click', ctrl.stop);
  scope.$on('$destroy', function () {
    start_button.off('click', ctrl.start);
    pause_button.off('click', ctrl.pause);
    stop_button.off('click', ctrl.stop);
  });

然后它起作用:)

working plunkr