gpt4 book ai didi

javascript - 如何将选中的项目添加到与未选中的项目不同的数组中? Angular js

转载 作者:行者123 更新时间:2023-12-03 03:58:51 24 4
gpt4 key购买 nike

我正在尝试创建一个按钮,该按钮将删除待办事项列表中的所有完整项目 --- 在尝试了几种不同的方法来完成此操作后,我认为最简单的方法是将选中的项目发送到一个数组,并且取消选中项目到另一个数组,这样我就可以创建一个按钮来清除选中的项目数组...但我所做的一切都不起作用...有什么想法吗?

html:

<input type="text" placeholder="To do..." ng-model="vm.myTask">
<button type="button" ng-click="vm.submitTask()">Submit</button>
<br>

<div ng-repeat="task in vm.myTasks" ng-class="'checkedbackground': task.checked">
<ul>
<li>
<input type="checkbox" value="{{task.name}}" ng-model="task.checked">{{task.name}}
<button type="button" ng-click="vm.myTasks.splice($index, 1)">Delete</button>
</li>
</ul>
</div>

<button type="button" ng-click="vm.clearAll()"> Clear Complete</button>

homeController.js

var myTasks = [];
var completeTasks [];

class HomeController {



//submit task from input value
submitTask(){
//push new task into array
myTasks.push({name: this.myTask, checked: false});

}
constructor(myTask, checkedTask){
this.myTasks = myTasks;

}

clearAll(){



}

}



angular.module("myapp").controller("HomeController", HomeController);

我删除了我尝试过的内容,但我尝试过的一些内容涉及以下内容:

constructor(myTask, checkedTask){
this.myTasks = myTasks;
completeTasks.push({name: this.checkedTask, checked: true});
}

但这破坏了整个事情。

最佳答案

考虑到你最初的想法以及你用 javascript 标记这个问题的事实,你可以做的是创建一个删除器函数,它会遍历你的原始数组(不需要创建一个单独的函数) ) ,然后检查任务是否已完成(每个列表项可以是具有名为 'isDone' 属性的对象),如果完成,您可以使用 splice() 从数组中删除该项目

另一种方法是这样做

function clr() {
var newlist = TaskList.filter(function (item,i,TaskArr) {
if(item.check)
return false;
else return true;
});
TaskList = newlist;

}

这使用 filter() 函数来检查该项目是否已检查(已完成)并返回一个仅包含未完成项目的新数组。

关于javascript - 如何将选中的项目添加到与未选中的项目不同的数组中? Angular js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44820713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com