Closed lidong6392 closed 6 years ago
看了,确实逻辑有问题, 只有 by item_index 是正确的。
还有个问题想咨询下,by item_index只是复用了dom结构,并没有调整dom的顺序,dom里面的html内容还是会被覆盖掉(这个可能没什么影响),但是class名没有随着元素的移动而变化比较奇怪,这样我如果想修改dom相关的东西就必须得把它作为data里面的一个属性了,设计就是这样吗?
var List = Regular.extend({ template: '
第1次输出:
第2次输出:
其实如果 不杂糅dom操作进去, 比如class是按插值 数据驱动而来。 class是不会出错的。 by item_index 起初只是为了解决,数据发生改变,但是我不希望直接销毁『块』,而是希望复用原来的『块』。
上面你的例子,表现应该没有错误,因为新的数据 数据为2的item_index确实是0, 所以它复用了第一个『块』。所以目前item_index是没有错误的,它代表的是下标
好的,明白了!谢谢!
对, 其它与每个对象相关的 表达式 比如 item.a 这种会引起复用item的顺序的, 虽然输出不会错,但是可能导致『块』是重新生成的, 我v0.4.5会修复
测试版本:0.4.3 测试步骤: 1、先创建一个简单的regular组件
2、给列表中的每个div元素加上一个name属性作为标记
输出结果:
3、将模型中的数据倒序排列
输出结果:
比较步骤3和步骤2的输出结果,发现只有
参考: http://webcode.nie.netease.com/cuz/19/edit?html,js,console,output