00:00
好嘞,各位,在这一小节呢,我们给todo list的这个按例啊,加一个编辑功能,也就是说呀,有这么一个效果,当我鼠标悬浮的时候,在这个位置啊,多一个按钮叫做编辑,一旦我点了这个编辑按钮之后啊,左边的文字呢,就出现在一个input框里面,然后等着你去编辑它,你比如说我想把睡觉呢,给它改成睡觉123,哎,那你这么写就可以了,其实就是增删改查里的改来,咱把这按钮呢,先给它写写删除,左边有个编辑,那我就得找到item这个组件,找到删除按钮在这儿呢,复制一份,改个名字叫做编辑,里边的逻辑呢,先给它删掉,一会儿再写保存,我们先看一下效果啊,悬浮我要的是编辑在左,删除在右啊,那为什么它串了呢?是因为啊,咱们在写这个样式的时候,在这儿啊,用了一个右浮动是它导致的,但是你不要把它注掉,你注掉之后啊,整个样式就都丢了是不?哎,所以说回来各位样式啊,咱不用去调,咱把结构啊给它换一下就可以了,把它放在这儿,如果说你觉得老师。
01:00
太难受了,明明删除在左,这个编辑在右,那你就把下边的样式啊给它改一改,比如说你可以用一下那个flex布局对不对,你别用那个浮动,或者你用定位都可以,那在这儿呢,同学,毕竟咱不是讲样式,在这儿就不周旋太久了,来先看一下效果啊,悬浮的时候左边编辑右边删除,那他俩的样式怎么一样呢?那是因为啊,这两个人都应用了这个样式叫b TN dangerer,这个b TN dangerer就是一个红色的危险按钮,所以说编辑啊,你不能用b TN danger老师,那我用什么呢?我们的样式里面没有给大家提供另外一种按钮啊,所以说我们在写静态页面的时候是没有考虑的,那在这儿呢,自己写一个吧,同学起个名字,比如说叫做edit,有编辑的意思吧,啊,然后呢,有些同学可能就说,哎,老师,我就在这个点view文件的下方啊,我去写样式就得了呗,我写一个b TN edit所对应的按钮样式是不就可以了呀,当然可以,但是你发现我们的BT其实呢,没有在下边写,下边呢都是Li Li这些东西,没有写这个BT那在哪?
02:00
反呀,各位,其实在APP里呢,你打开看,你找BTND舒老师为什么这么做呀,那大家想想,你说同一个项目,老王写的删除按钮和老李写的删除按钮风格是不是得一致啊,那没有必要老王写一遍,在这儿写好了加个SCO的啊,那个局部样式就这个东西是不?然后老李再写一个同样的样式,然后呢,也加上这个SCO的,没有必要,诶说的再直白点,各位所有开发人员都要用的那些样式啊,你比如说按钮什么的,那就配置在APP里边,并且这会儿不要加那个SCO,对,哎,那所以说呢,我们就这样做,把这个BTN给它复制。来到这儿丁着复制一份,改一个名字,调一下颜色不就得了吗?背景色别让它是红色,让它是天蓝色吧,然后文字的颜色呢,还让它是白色,然后边框的颜色呢,我再改一下sky blue,但是边框和背景吧得有点区别,那所以说我把边框的颜色给它拉深,OK,保存,这样呢,刷新一波,诶,这回对了吧,编辑删除离得有点近,再微微调整一下,给它来一个margin right吧,然后比如说那是5PX,够用就行啊,回来刷新一波走,OK了,好同学,把这个样式折叠起来,APP删掉,接下来我们就琢磨琢磨怎么能实现,我点了编辑按钮这块就能呈现一个input框,而不是单纯的展示睡觉这两个字。那就引导大家一波,我们一直说呀,我们使用前端框架的逻辑就是程序员把数据维护好,那至于说页面怎么变,那就是谁的功劳呢?View的功劳了。对不,数据驱动着页面的显示,程序员只需要维护好数据,页面怎么变,那是view的事儿。
03:37
所以说同学我引导大家一波啊,你说对于每一个要做的事儿来说,你说这个东西到底勾不勾取决于什么呢?取决于每一个要做的事儿身上的档值,你说对吗?Todo点当为真,那我就勾为假,我就不勾,对不?各位哎,或者说当你勾选的时候,我就把TODo.down值变成创,你取消勾选我就变成false,那同理各位,那你说这个睡觉两个字取决于哪里呢?是不是每一个要做事的title啊,你的title就打游戏,那我呈现的就打游戏,你就睡觉,那我就去睡觉嘛,对吧?诶那咱们考虑一个问题,各位,就是说当我点击编辑的时候啊,他这块儿啊,不一定展示的是一个文字的睡觉,有可能展示的是什么?一个input框里边,诶有睡觉,而且同学你再考虑我点完编辑了,是它变成了一个input框了,那早晚得有改完的时候吧,那你改完了之后,同学它得重新由input框,是不是得还得变成一个普通的文字啊,所以说你觉不觉得各位。
04:37
应该在每一个todo的身上再追加一个属性,比如说叫做TODo.a edit啥意思?是否处于编辑状态?如果TODo.its edit为真,那意味着我正在编辑它。好了,你不应该是文字,应该是个input框,如果it edit为假,各位那啥意思?就正常展示文字呗。所以说你觉不觉得一切这个东西怎么展示都是由todo身上的这些属性而定的,你说对不?而且呢,你不能这么考虑,说老师我定义一个变量呗,就叫做is edit完了一上来呢,它是false,就我不编辑它,完了等编辑的时候,我把这个变量is edit改成true不就得了吗?但是同学你要考虑啊,你用一个东西去标识不太合适吧,因为以后你的列表当中有可能有一堆要做的事儿,对不对,点的谁的编辑,那就把谁变成输入框是不?所以说不要考虑定义一个全局的its edit去标识,那不太合适,应该是每一个人身上所独有的啊,那我都给大家引导到这儿了,那。
05:37
咱们是不是可以写一写了,各位来给这个编辑按钮呢,绑定一个点击实践啊,上边呢,叫做handle delete,那我们这是编辑就叫做handle edit响应编辑吗?那找到这儿给他匹配一个方法注释呢,给他写好编辑对吧,那来吧,里边干嘛呀?各位,首先我得拿到你到底编辑的是哪个todo对不对,你得给我你是哪个todo,然后我再把这个todo身上的is edit给它调整一下,你说对不?各位哎,那所以说在这是不是得写个小括号啊,然后把谁递过来呢?Todo,各位你说递这个ID行不行,我写个TODo.ID行不行,光写这个不够用,各位不够用的,因为你不是说光拿到ID你去,哎,直接我删除或者我更新怎么的,现在是你要修改的,你得先把todo身上的AI里的属性给它改掉才可以,对不对,哎,所以说别直接传ID,得传todo啊,那这边传了这边就得接收,那里边怎么写呀,Todo身上的点is edit。
06:37
啊,然后等于什么呢?那我都点你了,很明显我要编辑你嘛,调成这个错是不是就可以了啊OK,你光这写完了不行,各位,你上边这结构是不得给人家准备好啊,你还得再写一个input框里边是有值的,所以说数据绑定写Y6,那值呢,当然读取它出来对不好,如果你只写到这儿,各位,那就挺有意思的,来你自己看啊,划到这儿刷新一步啊,刚才是代码写快了,他没反应过来,同学,不可能这种展示既有普通文字,还有输入框,这两个东西得二选一,你觉得呢?哎,所以说回来各位,那你说这个两个东西一会儿有一会儿没有,而且还是二选一,是不是得加一个条件渲染啊,你写V-if倒也行,各位,但是不太好,为什么呢?因为这个东西变化的比较频繁,所以说我们用这个叫做V-show,那听谁的呢?听todo身上的这个属性,就刚才你写的这个it's edit,对不?那把这个复制一份往这儿呢粘一下,好,那同学这就不做过多解释了,这肯定得取个反对不,你要这么。
07:37
它俩条件不是一样的吗?啊,Is edit为真,那我就输入框展示,那我文字也展示文字当然得取个反了,对不?他俩是互斥的,OK,写到这儿呢,可能有一些同学就觉得,哎,老师啊,我写完了你看吗?一上来显示的是文字,因为it'edit咋的这个属性压根就没有,同学我问一下,你说现在就这个todo里边啊,有is edit这个选项吗?我给你找到开发者工具,就打开这个睡觉这件事,同学,我有down,我有ID,我有title,我有is edit吗?没有,那没有同学,那当然在取个反,是不是就展示这个了,那肯定不展示这个了,对不对?诶然后有同学就说了,老师,那现在我明白了呀,你现在点击这个编辑按钮的时候啊,一定是瞬间它就切为音input框了啊老师,那我试试啊,321走。
08:25
没反应,为啥呢?有同学说,哎,老师,你这段代码是不是没执行啊,你todo身上的那个is edit你是不是没改过来呀?各位我很负责任的告诉你,你改过来了,但是页面就是不变,为什么呢?来先给你验证一下conslo输出谁呢?那个todo好在这呢,我整体刷新一下,各位找到开发者工具去看一下,诶来,他身上没有s edit对不对?各位好了,切到控制台,接下来我点击编辑了啊,你看好了,走,你同学我改了,而且你看我都把那个todo对象给你输出了,同学你看有down值,有ID,有title,如果反应快的同学看到了红色框里的东西,马上就知道了,哎呀,老师,我知道为什么页面不变了。
09:09
啊,有没有能反应过来的同学是这么回事儿,你说啊,就这个当值和这个ID,还有这个title,我问你这些东西是不是都是当时我就写好的,也就是说在添加这个todo的时候,在这的时候同学我就准备好了这些东西是不啊,而且呢,我是靠这个inmate写了一个爱的todo,你找到APP,你找到I的todo,你看你那里边的逻辑是怎么写的,同学你是不是掉了on shift,那you监测数据的时候,是不是能捕获到on shift这个动作,那所以说嘛,同学你给人家提供过去的对象,人家都会非常精准的给你匹配上get,你看B的get ID的title的是不是都有,那你这个东西同学你就属于很生硬的,往一个已经存在的对象里面生硬的,你加了这么一个s edit,那这个属性的确能加进去,但是它没有对应的get和C了,也就是说同学数据加进去了,但是这个数据不是响应式的,这个数据的添加和修改都不会引起重新解。
10:09
地模板,你说对吗?各位,哎,所以说你这么写肯定不行,其实同学这不就是咱们之前讲的这个东西吗?我们在给大家讲那个基础的时候啊,在这写了一个列表渲染在这里面,我给大家说了这么一个东西,叫做view.set的使用,同学怎么个意思?你想给这个学生添加一个性别,你可以这么添加,或者是这么添加,哎,你能这么添加吗?各位,我写一个this点,然后我写一个性别就等于难,同学,我们都测试过,你这么写这个难能添加上页面不会呈现的是不?各位以后你改这个页面也不刷新的是不?所以说各位你说这块这个问题怎么解决呀,你不能直接这么写来找到这个item,不能直接todo点,就直接这么写,这么写肯定是不行的是不,那得怎么写呀?哎,来吧各位,你得借助这个东西this.dollar符有一个API叫做site,然后呢说给todo追加一个属性,属性名字叫做a edit值呢为真,这回就可以了。同学,你这么给todo身上添加的it edit就是一个响应式的,就是一个被所认可的这么一个属性,来咱们试试啊,各位刷新一波,其实现在已经有反馈了,是否来刷新一下,看一下整个流程啊,点击编辑走你各位是不变成input框了,而且你打开同学你的is edit,人家精准的给你匹配上了get和S。
11:26
对不对,各位啊,而且呢,你打开view的开发者工具,点击这个,然后呢,APP你打开各位,你瞧it's edit是不是有了,而且最主要的是it's edit如果变化,页面也跟着变,你瞧各位,我点击这的时候,你观察左侧是不?各位OK啊,那把这块呢就写完了,那同学别急啊,我们慢慢来,这里边有很多细节上的问题,那你说同学啊,就比如说刷新啊,一上来啊说我要编辑,行,我编辑了,诶同学我问一下为什么一刷新它依然处于编辑状态啊,别忘了嘛,我们是不是做了这个东西,Application里面,我是不是用那个local store age里边存储这个了,那你刚才说处于编辑状态,那人就存进去了呗,是不?哎,那你刷新当然依然保持住这个编辑状态,对不对?好,咱说另外一个问题各位,就是它处于编辑状态了,比如说我想把睡觉改成睡觉123,我确实想改,那什么时候能让它改掉呢?或者说这个input的框什么时候能重新变回文字呢?你不能这样吧,说你改完了啊,我改完了以后就一直这样了,那肯定不行,那这得怎么设计呢?
12:26
其实这要是真实开发呀,那就看那个产品经理他咋设计了,那在这儿呢,同学我就跟你说一下,我的设计是什么,就是你在这儿,如果有一天啊,你想把睡觉改成睡觉456,那你就改了,改完之后同学你说什么叫你改完了呢?你可以在这儿啊,给他换一个按钮,叫确认,对吧,就如果处于编辑状态,那按钮就不叫编辑了,叫确认,完了你点确认,然后咋的,哎,它就重新变成那个文字了,这样设计也行,但是就有点烦,你得来回来回动,其实一个最好的设计是这样的,各位,就是这个input框啊,失去焦点的时候,它就重新变成一个正常的文字,你就比如说我想把睡觉改成四睡觉,这个456789,同学我改完了吧,我但凡往旁边一点,它应该马上就变成一个正常的文字,你说对不?各位,哎,那所以说来吧,你得怎么写呢?给这个input框啊,给它绑定一个什么呢?失去焦点事件叫做不乐,那在这儿咱们同样的套路叫做handle,不是delete,也不是edit handlel对吧,里边的东西呢,越来越多了,所以说接下来呢,我们敲回车给它调整。
13:26
一下这呢也调整一下,然后一般来说啊,同学这个原生ML里就有的这些一般往上靠一下啊,总之就是view里的这一堆挨在一起,原生atml的自己这些挨在一起,OK,写完了吧,那你得给他准备一个handlel啊,那来到这儿走handlel好,接下来你做一个事儿就行了,你让曾经的is edit变成false,是不是就失去了那个input框啊,所以说在这那怎么办呀,说老师那简单,我就这么写呗啊,然后给它改成false,同学你这么写能把功能实现,但是有点没必要,为啥说没必要呢?同学你想想啊,就这个文字,它能变成一个input框,就证明他身上绝对已经有了it edit这个属性,并且属性值已经为真了,你说对不?所以说当失去焦点的时候,同学,你不用操这份心了,说我还得给你加个it edit是false,没那个必要,同学,在这我可以非常肯定的说,这个todo身上已经有了it edit,我要做的就是把这个it edit给它调成false是不就可以了,但?
14:26
你直接这么写肯定报错,为什么呀,你这没有收到todo吗?是不,你得收到吗?我得收到,你到底操作的是哪个todo吗?那所以说在这儿各位找到这个地方写个小括号,把todo传进去,往下走,各位TODo.is edit等于诶false这不就可以了吗?来我们看一下效果啊,刷新一波,现在是处于编辑状态,比如说我写个123,我编辑完了,我往旁边一点,诶同学是不是就回来了,我知道啊,可能有些同学说,哎,老师不对呀,那你这睡觉123在这儿呢,那你你也没改过来呀,同学,我还没有真正写改的那个逻辑呢,我现在只是完成一个切换,OK,好同学,就是这段逻辑你写的也不完美,哪不完美呢?我告诉你44行。
15:08
我就说它不完美,为啥不完美?来各位我给你演示一下啊,我把application里边的东西全都给你清掉,刷新一波,现在应该空空如也,什么都没有,对吧?好,你看着啊,睡觉学习,我添加了两个事儿,那我问各位,现在打开view开发者工具来看,你说他们身上有没有那个it edit,绝对没有,是不啊,没有那个it edit,那你看当我第一次点编辑的时候,同学我还没点呢,我还没点呢,我第一次点编辑的时候,你的的确确应该执行44行,就是因为我身上没有吧,你要追加嘛,那你就得用这种方式去追加,好,没问题,看着我点一下来走,你学习是不是编辑过一次,我要给它改成学习123好,失去焦点,OK,我改完了,那各位你看这么一折腾,学习身上是不是出现了一个edit,那你说如果等我再去点击编辑的时候,同学你觉得还有这个必要了吗?我再往你身上追加一个a edit值为true啊,然后把这个值呢就给它顶掉。
16:08
了,同学,没有这个必要,也就是说只要你编辑过一次,你这句话就不要再执行了,你直接去改就可以了,所以说同学们,我们最好的方式在这儿是不是得写一个判断,判断什么,判断这个todo身上到底有没有it's I的这个属性,如果没有好,我合理合法的给你追加啊,那如果有呢,那我直接改就可以了,你说对吧,各位,所以说在这儿把这个东西呢啊,我给他写一个else吧,对不?那这咱这么写叫做如果todo身上有it's edit,那咋办?就身上我已经有了,我是第二次编辑了,那你说怎么办?是不是可以直接改啊,Todo点it's edit直接等于true,我要编辑你是不就行了,那进入else,就是如果todo身上没有its edit,那我老老实实的,我得执行这个,你说对不?各位OK啊,那在这儿呢,我给你加一个consolo,比如说我给你写在这儿,写在什么呢?叫做todo身上没有。
17:08
A字edit,那然后怎么办呀,我就得去追加是不?嗯,那来同学这个条件怎么写,不能直接写伪代码啊,这个条件怎么写,有些人呢,他这么判断叫做todo点,说老师啊,可简单了啊,直接就写完了it edit,同学你看这么写对吗?说老师这么写我觉得挺对的呀,你看身上如果有这个is edit,那我就给它调成true,同学你这么写不对,Todo身上有is edit不假,但是it edit的值有可能是false,你觉得呢,也就是说你没有进入这个判断,有可能是这么一个情况,是a edit为甲,你觉得呢?各位,哎,所以说这块你看一下各位来我给你刷新一下东西呢,都给你清掉,这些都没了,刷新一波啊,来咱们重新写,比如说写一个叫做吃饭好同学,他身上现在不用说肯定没有is edit对不对,你打开来看这是不是没有好,接下来呢,你瞧着控制台,我想编辑你是吧?来走各位,你看todo身上没有s edit是不and,那我就给你追加一个嘛,好了,比如说编辑123编辑完了。
18:08
啊,等我再编辑的时候,走,同学你看他还能进来,所以说你执行了很多次这个啊,所以说不能这么判断,同学你这么判断是判断todo身上的it'edit这个值为真为假,我要判断的是todo这个对象身上到底有没有这个属性,你这么写是有逻辑漏洞的,那得怎么写呢?借助一个API,不知道大家呢,还记不记得了啊,就是todo是一个对象身上啊,你可以去调用这么一个API,叫做has own property,就是我的身上有没有一个自己的什么什么属性,然后在这儿你传递一个谁呢?这个it edit,这回就可以了,如果有我就直接改,如果没有那我就给你追加,是这意思,不在这儿就不用操心了,OK,这回呢,咱们再测试一下来到这个里边把东西都清掉,因为这里边始终它有缓存嘛,刷新一波,你比如说呢,来一个学习,我想编辑走编成123,编辑完了吧,各位来失去焦点走啊是不是可以,那在这儿我得给你加那个输出是吧,没有那个输出没法验证了,走我就输入这个艾特符吧,啊来在这呢。
19:08
再一次的把这些东西清掉,刷新一波,来写一个学习走各位啊,我没编辑呢,接下来是我初次编辑它来走,你看艾特福役输出就证明啥,就证明它的身上是没有it edit的,我就得给你追加一个对不?各位好,开始编辑失去焦点,编辑完了我再点编辑,同学你看艾特福不会再走了,是不是这意思?哎,OK,那来同学赶紧的,咱把这功能给它实现呢,得让他能改呀,比如说学习123,我一失去焦点,它得真正能改呀,啊那这怎么实现呀,各位你觉没觉得真正实现更新的逻辑,其实不是点编辑的时候,而是在这儿输入完东西失去焦点的时候,所以说同学在什么时候你去联系一下APP,帮你把那个todo的那个抬头改掉呢?是不是在失去焦点的时候,哎,所以说在这写一个注释叫做失去焦点回调,写个括号叫做真正执行修改逻辑,好同学,那在这儿怎么写,我就直接来了啊各位。
20:08
我不用消息订阅与发布了,我直接拿事件总线写this,点找到那个傀儡Dollar for bus,给它来一个dollarmate啊,然后呢,触发一个自定义事件,比如说就叫做这个名字update todo对不对,更新一个todo嘛,然后你得把什么递过去,各位想好啊,想好你得把什么递过去,你得告诉人家你要修改的那个todo的ID是多少,以及你要修改的最新的title头是多少,是不?各位所以说在这呢,ID咋的你得给他啊,那然后呢,Title头是不是也得给人家?哎,有些同学就可激动了,老师,我知道todo点儿title,同学你琢磨琢磨,你这么写有意思呀啊,你告诉人家我要修改,修改的是这个人,这都行,就是在这的同学,你觉没觉得你拿的还是这个todo,原本的抬头,你这么写怎么改你也改不掉,各位你得拿到输入框里边的值,你说对不?各位哎,拿到最新的输入嘛,所以说这块你可千万别写它呀,说老师那我怎么能拿到这个最新的值呢?嗯,体会体。
21:08
同学,给谁绑定的?憨豆不乐给谁绑定的?失去焦点时间给谁呀?啊,给这个input框,那你说我能不能这么做呀?我在这用这种写法,大家还记得吧?Dollar这样的话,我在这儿是不是就能收到一个事件对象啊,然后我可不可以通过这个事件对象的身上,他给他点value流是不是就取到值了呀?这回不就得了吗?是不来咱先验证一波啊,Consolo,我把这一堆东西啊都给你复制放到这儿,先不触发这个事件,先输出,瞧一瞧,来刷新一波啊各位,我要编辑了,学习123,然后失去焦点走,你看这是ID吧,对吧,这是最新的啥那个TITLE123吧,OK,这回不就得了吗?那把这个删掉,把它解开,你是触发了这个事件,但是谁没有绑定这事件呢?到了for bus没有绑定,所以说各位你得来到能真正去修改数据的APP里面,在里面来再给这个Dollar bus绑定一个东西叫做update todo,对不对?哎,如果真的有人要更新你。
22:08
的todo,那你肯定在这儿得写update todo,但是之前我们没有写过这个东西啊,我们可没有写过update todo,我们之前写过什么?各位,我们之前写过增,对吧?添加一个,还有勾选,还有删除,还有全选,还有清除,所有我们之前写过增删改查里的那三个,但我们没有写过改,对不对?那把改写一下各位,那改啊,跟这个勾选是一样的,复制一份给他的名字改一下就得了,这叫做update todo,那这呢,Update todo ID接到ID,同时还得接到另外一个人,谁呢?抬头,如果你的ID跟我一样,那我就把TODo.title。改为你传过来title是不是就完事了?各位好了,写好一个主释,叫做更新一个todo OK,写完了啊,别忘了各位在这儿还得再写一个解绑的,是不写这么一个东西啊,这个逻辑就完整了,好各位,现在呢,理论上就应该能修改了,是不是我们看一下各位刷新一波,现在是学习来,我要编辑了,改成学习123,失去焦点走是不是改完了,借助开发者工具咱们再看一眼啊来到这儿走打开,诶,确实改完了。
23:08
是不,各位,诶这个逻辑就跑通了,但是有一点点不完善啊各位,你比如说我已经处于编辑状态了,你觉得编辑这按钮还应该有吗?不应该有了,那所以说回到我们的代码里面再调整一下,找到编辑按钮的同学,他也得来一个微条件渲染,什么时候展示这个编辑。我没有编辑你的时候再展示这个按钮,我已经处于编辑了,那咋的就不要再展示了,所以说跟这个的逻辑是一样的,对不对,你得取个反好了,这回呢,我们再测试一下啊,刷新一波。来失去焦点改完了是吧,点击编辑,然后你去改了,再加一个456好了,失去焦点走是不是这样子啊,再点击编辑,你看这个按钮就没了,OK啊说老师那就写到这儿就写完了呗,其实同学写到这儿呢,也有一些不完善,来我给大家演示一下,比如说呢,来一个吃饭啊,再来一个睡觉啊,再来一个打代码好了,有这么多事儿是吧?现在就有这么一个不好的状况,就是我点击编辑的时候,你看着各位有可能存在这么一个情况,说啊我点完编辑了,但是我不想改了,那我还得点一下再失去焦点,就比如说这个睡觉,哎呀,我想改,点完的一瞬间不想改了,那怎么办呀?说老师那我点旁边你点哪都不行,说老师那不失去焦点完了就变成正常文字,哥们儿,它得先获取焦点,然后是不是才能触发失去焦点啊,也就是说你点击这个睡觉的时候来各位你看走是变成输入框了,它没有获取焦点,还得你自己点一下,完了呢,再触发失去焦点对不对?哎,你看这就是问题,而容易存在这么一个情况,编辑编辑。
24:40
编辑编辑,其实明明我已经不想编辑了,对不?那你刷新一波,你看这个状态它还存在,这就不太好是不啊,那这些问题怎么解决呢?在下一小节我们说,而且这里边呢,它还有一些细节上的问题,各位你比如说我把打代码改成空啊,好家伙,这些东西都能变成空,这不太合适是吧?各位啊,这个校验好加来,咱现在给这个校验呢,咱就给它加上来到application里面,我先给它清掉啊校验怎么加来找到这儿就是你更新的时候,你别直接你就处罚,这个时间你判断一下,对对,各位判断什么呢?如果一点他给他点value,最好你再来一个tri,如果它为空,它不存在,那就return,首先把逻辑你得保证停掉,然后再给人家来一个alert,叫做输入不能为空,这不就得了吗?来测试一下各位刷新一波,呃,比如说吃饭睡觉啊,睡觉去了啊,来给它删掉,重新写一个啊,叫做睡觉,然后再来一个学习,好了各位啊,我要编辑这个学习,我全都删掉。
25:40
诶,失去焦点输入不能为空啊,好了,他又回来了,对不?诶,那关于这个问题,我们在下一小节处理,就是我不想编辑,还得点一下再失去,点一下再失去,点一下再失去,哎,下小节我们说好各位这一小节呢我们先停。
我来说两句