我有以下名为$scope.workflow
的对象:
{
"name":"Demo #1",
"flow":[
{
"tasks":[
{
"name":"Task 1 Step 1",
"$$hashKey":"object:25"
},
{
"name":"Task 2 Step 1",
"$$hashKey":"object:93"
}
],
"$$hashKey":"object:21"
},
{
"tasks":[
{
"name":"Task 1 Step 2",
"$$hashKey":"object:29"
}
],
"$$hashKey":"object:22"
}
]
}
我有以下模板
<ul>
<li ng-repeat="data in workflow.flow" ng-init="$stepIndex = workflow.flow.indexOf(data)">
<div class="step_container">
<div class="step_header">{{ data.name }}</div>
<div class="step_content">
<div class="task_container" ng-repeat="task in workflow.flow[$stepIndex].tasks">
<div ng-click="editTask(data, task)">
<div class="header">{{task.name}}</div>
</div>
</div>
</div>
</div>
</li>
</ul>
按照模板点击任务时,editTask()
显示以下内容:
$scope.editTask = function(step, task) {
$scope.step_index = $scope.workflow.flow.indexOf(step_index);
$scope.task_index = $scope.workflow.flow[$scope.step_index].tasks.indexOf(task);
//code that opens up a popup model
}
弹出模型如下:
<div ng-click="deleteTask()">Delete me</div>
因此,与我的拼接一起,我做一个console.log,以确保它选择正确的对象,如下所示:
$scope.deleteTask = function() {
console.log($scope.workflow.flow[$scope.step_index].tasks[$scope.task_index]);
$scope.workflow.flow[$scope.step_index].tasks.splice($scope.task_index, 1);
}
console.log确认我正在选择正确的任务,但如果我尝试删除最后一个任务,它将删除倒数第二个任务。如果我在此之后尝试删除最后一个任务,它将不会删除任何一个任务。
有谁知道我可能做错了什么?这没有任何意义,因为console.log实际上输出了我想要删除的内容,但是拼接不能正常工作。