我有一个用于删除问题的按钮:
<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>
这是按钮背后的代码:
$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);
}
}
};
现在,当我按下按钮时,我注意到该功能已被触发两次。 第一次删除问题时,第二次撤消该操作。
我想要的是一个删除问题的按钮,当您再次点击它时,它会撤消该操作。
我只是想知道我忽略了什么......
编辑这是一个小提琴: http://jsfiddle.net/rquackenbush/AbWKs/
答案 0 :(得分: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>
我已经创建了一个data-app-bind-html,它绑定了一个html部分。这导致链接被绑定两次,这也使它发射两次。 为了解决这个问题,我确保该指令绑定了html部分而不是整个listitem。