angularjs – 多个指令实例和事件

我有一个指令,我在页面上多次使用.它在状态改变时触发事件,然后控制器处理事件.

问题是该事件被触发两次.我知道为什么会发生这种情况,但我要么试图找到解决方法或更好的设计.有小费吗?

Plunker示例:http://plnkr.co/edit/xObOvi253qejphU5arFr

您需要定义隔离范围以使指令可重用.一个简单的解决方法添加范围:{}以创建一个隔离的范围,这样当您单击每个按钮时,它只会触发一次.
app.directive('myDirective',function () {
  return {
    restrict: 'E',scope: {},// Add this line to create an isolated scope
    template: '<div>Foo: {{foo}}</div><button ng-click="incrementFoo()">Increment Foo</button>',controller: function ($scope) {
      $scope.foo = 0;
      $scope.incrementFoo = function () {
        $scope.foo += 1;
      };

      $scope.$watch('foo',function () {
        $scope.$emit('fooChanged',{foo: $scope.foo});
        console.log($scope);
      });
    }
  };
});

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...