ng单击从内部数组中删除项

ng-click remove item from inner array

本文关键字:删除 数组 内部 单击 ng      更新时间:2023-09-26

所以我有一个对象数组,显示如下:

<div class="panel panel-default" ng-repeat="row in jobprofiles">
<div class="panel-heading">
    {{row.name}}
</div>
<ul class="list-group alt">
    <li class="list-group-item" ng-repeat="competence in row.selectedCompetence">
        <div class="media">
            <span class="pull-left thumb-sm"></span>
            <div class="pull-right text-success m-t-sm">
                <button class="btn btn-danger" ng-click="competence.remove()"><i class="fa fa-times"></i></button>
            </div>
            <div class="media-body">
                <div><a href="">{{competence.name}}</a></div>
                <small class="text-muted">{{competence.competence_type_id == 1 ? 'Faglig' : 'Personlig'}}</small>
            </div>
        </div>
    </li>
</ul>

如您所见,每个li都有一个按钮,我想在其中删除内部数组的competence对象。

有人能告诉我该怎么做吗?

假设你的工作档案&selectedCompetence是的对象

<div class="panel panel-default" ng-repeat="(indexRow, row) in jobprofiles ">
<div class="panel-heading">
    {{row.name}}
</div>
<ul class="list-group alt">
    <li class="list-group-item" ng-repeat="(indexCompetence, competence) in row.selectedCompetence">
        <div class="media">
            <span class="pull-left thumb-sm"></span>
            <div class="pull-right text-success m-t-sm">
                <button class="btn btn-danger" ng-click="remove(indexRow, indexCompetence)"><i class="fa fa-times"></i></button>
            </div>
            <div class="media-body">
                <div><a href="">{{competence.name}}</a></div>
                <small class="text-muted">{{competence.competence_type_id == 1 ? 'Faglig' : 'Personlig'}}</small>
            </div>
        </div>
    </li>
</ul>

和控制器

$scope.remove(rowIndex, competenceIndex) {
    delete $scope.jobprofiles[rowIndex][competenceIndex];
}

如果它们是数组,可以参考https://docs.angularjs.org/api/ng/directive/ngRepeat

对于

跟踪

表达。

在作用域、能力和内部数组上添加一个移除函数,并使用拼接函数移除项目:

$scope.removeCompetence(competence, selectedCompetence) {
    var index = selectedCompetence.indexOf(competence);
    selectedCompetence.splice(index, 1);
}

在您的HTML:中

<button class="btn btn-danger" ng-click="removeCompetence(competence, row.selectedCompetence)"><i class="fa fa-times"></i></button>

<button class="btn btn-danger" ng-click="row.selectedCompetence.splice($index, 1)"><i class="fa fa-times"></i></button>怎么样?