添加任务总数和删除任务
打赏作者

braveone

老师你每堂课最后一句英文是什么意思啊?

JellyBool 回复 braveone

Happy Hacking

braveone 回复 JellyBool

I 服了 U

LancerDing 回复 JellyBool

我听出来了是Happy Hacking

Augus 回复 LancerDing

Yes!! 挺好。 有的视频拖个长长的 year~~~ 每次听了有种揍他的冲动~~

lissic

Happy Hacking? Yes!!!

GavinGao1994

Vuejs官方文档里好像写了过滤器有两个参数:过滤器 ID 和过滤器函数,请问老师为什么视频里可以直接写函数?

奇妙能力者 回复 GavinGao1994

我开始也疑惑了,后来才发现这个并不是vue里的过滤器,而是js自带的filter方法,返回值是布尔值

xiaoli123

Array.prototype.$remove 移除

用 Array.prototype.splice 代替,例如:

methods: {
  removeTodo: function (todo) {
    var index = this.todos.indexOf(todo)
    this.todos.splice(index, 1)
  }
}

或者更好的方法,直接给除去的方法一个index参数:

methods: {
  removeTodo: function (index) {
    this.todos.splice(index, 1)
  }
}
723tree 回复 xiaoli123

感谢大佬,$remove()在2.0版本不起作用。

xiaohj001

请问:<li @click=“toggleTasks(task)” :class="{‘completed’:task.completed}" v-for=“task in list”>
{ task.body }
<strong @click=“deleteTask(task)”>X

li标签里面的strong标签中的点击事件能执行到吗?不会被li标签的点击事件屏蔽掉吗?

JellyBool 回复 xiaohj001

视频中是执行到的,或者你怕出现这样的问题的话,你把 strong 放外面,或者绑定 toggleTask 到一个 span 里

xiaohj001 回复 JellyBool

好像是script的原因,我没有引用cdn的

奇妙能力者 回复 JellyBool

我这边出现的问题是我在执行del事件的时候发现其他li的completed属性也更改了,应该是同时也触发了toggleclick事件。因为我用的2.4版本的,所以remove方法用不了,是直接this.list.splice(index,1)的,我的解决方式是把task.body放在了一个span里面,然后把toggleclick方法绑定在了这个span上面就好了,不过为什么老师你的remove方法不会出现这种情况呢

kiveny

perfect

zhangchao1088

thank you for your help !

ccpone

新版$remove 移除了 用this.list.splice(task,1);

奇妙能力者 回复 ccpone

splice方法的第一个参数是index,你这样写的话每次都是删除的第一个

chaoxin 回复 奇妙能力者

对啊 !有什么解决方法吗?

acheng93 回复 chaoxin

splice方法的第一个规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
删除方法传对应索引

  • {task.text} X
  • deltetask:function(key){
    Alex-Sgy

    vue 2.0版本可以是:
    this.list.$remove(task) 改为 this.list.splice(this.list.indexOf(task), 1);
    <strong @click=“deleteTask(task)”>X改为<strong @click.stop=“deleteTask(task)”>X //停止冒泡

    liupengpo

    deleteTask: function (task) {
    //this.list.$remove(task) //vue2.0之后移除了remove()函数
    //Vue2.5第一种写法
    //var index = this.list.indexOf(task)
    //this.list.splice(index,1)

    				//Vue2.5第二种写法,但是第二种写法没弄明白为什么???
    				this.list.splice(task,1);
    			}
    

    请问各位:为什么Vue版本:2.5.16里面,我直接把test放进去:this.list.splice(task,1);这样也能正常删除呢????