javascript - 如何在 Angular 中使用 splice 从列表中删除项目?

标签 javascript arrays function angularjs loops

模板如下所示:

<tr ng-repeat="revision in revisions" id="revision_{{revision.id}}">
    <td><a href="#/wiki/revision/{{ revision.id }}">{{ revision.title }}</a></td>
    <td>(<a href="#/wiki/revision/edit/{{ revision.id }}">Edit</a> | </td>
    <td><a ng-click="revisionDisappear($index)">Delete</a>)</td>
</tr>

Controller 是这样的:

$scope.revisionDisappear = function($index) {
    $scope.revision.revisions[0].splice($index, 1);
};

我得到的错误是:无法读取未定义的属性“修订版”,因此我认为问题出在 Controller 中的某个位置。你们谁能告诉我正确的做法是什么?

最佳答案

根据您的 ng-repeat 函数判断,您的作用域包含 revisions 数组,并且 ng-repeat 迭代它们并使用代表修订中每一项的修订变量。

看起来您的 Controller 位于 ng-repeat 之外,因此它看不到包含各个 revision 实例的范围,但它确实看到了原始 >revisions 数组,因此您应该能够直接拼接它。

 $scope.revisions.splice($index, 1)

关于javascript - 如何在 Angular 中使用 splice 从列表中删除项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19783557/

相关文章:

C - 将参数未知的函数传递给另一个函数,并调用它

javascript - 从数组对象中删除项目

如果使用 <a>,javascript 不会向处理程序提交数据

python - 如何将 32 位整数编码为字节数组?

arrays - scala 2.11.8 如何填充数组

c++ - 如何在 C++ 中通过名称 (std::string) 调用函数?

javascript - 如何在 Electron 中注册多个全局快捷方式?

javascript - 使用 setTimeOut 在 3 秒后一个一个地显示标记。为什么它只显示最后一个标记?

python - 从 Python 列表创建字典数组

javascript - live()点击在javascript中无法正常工作