当ons惰性重复检测到更改时,如何使用ons旋转木马刷新列表
How to refresh a list with an ons-carousel when ons-lazy-repeat detects a change
我有一个ons列表,该ons列表项具有ons惰性重复委托。每个ons列表项还有一个带有两个索引(0和1)的ons carousel元素。
如果我使用for循环来拼接绑定到ons惰性重复委托的数组,则列表将被更改为删除从数组中删除的项目,但ons转盘索引保持相同
示例:
<ons-list>
<ons-list-item id="myList" modifier="chevron" class="item" ons-lazy-repeat="myDelegate">
<ons-carousel swipeable auto-refresh style="height: 72px; width: 100%;" initial-index="0" auto-scroll>
<ons-carousel-item class="list-action-item" ng-click="doThis()">
Some random text
</ons-carousel-item>
<ons-carousel-item class="list-action-menu" ng-click="delete(elementId)">
Remove all items like this one
</ons-carousel-item>
</ons-carousel>
</ons-list-item>
</ons-list>
delete函数是一个javascript for循环,它将遍历与myDelegate关联的数组,并删除与elementId 不匹配的项
示例:
for (var i = $scope.myArray.length - 1; i >= 0; i--) {
var currenElement = $scope.myArray[i];
if(currenElement.elementId === elementId){
$scope.myArray.splice(i,1);
}
};
这一点非常好,会更新,并且项目会从列表中直观地删除。
然而,对于数组的元素i,ons转盘索引保持为1,这意味着如果元素i被移除,则列表中变为元素i的元素i+1将把索引更改为1。
有关示例,请访问http://codepen.io/anon/pen/XJOgoa尝试向左拖动任何元素并按delete键:您将看到元素被删除,但元素i+i现在显示删除(旋转木马索引="1"而不是0)
感谢您的帮助。
在删除元素之前,视图已用prev({animation: 'none'})
修复:
$scope.remove = function(index) {
$scope.carousel[index].prev({animation: 'none'});
$scope.myArray.splice(index, 1);
};
在你的Codepen中,删除功能会被触发两次。这是一个错误,但在最新版本的Onsen UI中已经修复。在此工作:http://codepen.io/frankdiox/pen/ByMmwE
编辑:在Github上创建了一个关于此的问题。
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 如何使用jQuery自动打开页面上的所有链接
- 如何使用url加载程序在webpack中导入多个图像
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何使用jquery在填充自动完成的值后使文本框只读
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用WCF服务和javascript表单post上传.doc文件
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 当ons惰性重复检测到更改时,如何使用ons旋转木马刷新列表
- jQuery.queue() 与使用回调函数完成某事有何不同
- Ons导航(温泉UI),使用javascript代码
- 使用用于在同一函数中命名函数的变量名称有何意义
- Onsen 2.0 - 使用 Javascript 将事件侦听器添加到 Ons-Switch
- 为什么要使用 jQuery $(window).ready(),它与 $(window).load() 有何不同
- 手动调用模块与使用browserify动态调用模块有何不同?
- 如何使用javascript在onsen ui中的ons模板中附加文本
- 在 JavaScript 中使用重排隐藏元素,它与 CSS 隐藏属性有何不同