为什么ng-click处理程序被触发两次?

Jef*_*lle 6 angularjs

我有一个用于删除问题的按钮:

<a class="btn-small float-right" data-ng-click="deleteQuestion(question)">
  <i data-ng-class="{true: 'icon-step-backward', false: 'icon-remove'}
  [question.IsDeleted]"></i>
</a>
Run Code Online (Sandbox Code Playgroud)

这是按钮背后的代码:

$scope.deleteQuestion = function (data) {
  if (data.IsDeleted) {
      data.IsDeleted = false;
      for (var i = 0; i < deletedQuestions.length; i++) {
          if (deletedQuestions[i] == data) {
              deletedQuestions.splice(i, 1);
          }
      }  
  } else {
      data.IsDeleted = true;
      if ($.inArray(data, deletedQuestions) === -1) {
          deletedQuestions.push(data);
      }
  }
};
Run Code Online (Sandbox Code Playgroud)

现在,当我按下按钮时,我注意到该功能已被触发两次.第一次删除问题时,第二次撤消该操作.

我想要的是一个按钮来删除一个问题,当你再次点击它时,它会撤消该动作.

我只是想知道我忽略了什么......

编辑这是一个小提琴:http: //jsfiddle.net/rquackenbush/AbWKs/

Jef*_*lle 5

我发现了问题所在.

该链接位于列表中:

<li class="question-item"
   data-app-bind-html="question.template">                        
       <a class="btn-small float-right" data-ng-click="deleteQuestion(question)">
         <i data-ng-class="{true: 'icon-step-backward', false: 'icon-remove'} [question.IsDeleted]">
         </i>
      </a>
<li>
Run Code Online (Sandbox Code Playgroud)

我已经制作了一个data-app-bind-html,它绑定了一个html部分.这导致链接被绑定两次,这也使它发射两次.为了解决这个问题,我确保该指令绑定了html部分,而不是整个listitem.