vm中有嵌套数组,用ms-for循环绑定此嵌套数组,删除数组元素的时候会报错
1. 问题描述
场景:vm中定义了一个嵌套数组:
var configVm = avalon.define({
...
arr: [
["arr_1", "arr_2"],
["arr_3", "arr_4", "arr_5", "arr_6"]
],
...
});
触发条件:尝试删除这个数组中的元素:
configVm.arr.removeAt(0);
报错:就会报这个错误:
2. 源代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="http://cdn.bootcss.com/avalon.js/2.1.6/avalon.js"></script>
<style>
.horizontal_div {
display: inline-block;
width: 30%;
vertical-align: top;
}
.horizontal_div {
border-bottom: solid 1px black;
}
.item {
height: 40px;
line-height: 40px;
text-align: center;
border: solid 1px black;
border-bottom: none;
}
.no-border-right {
border-right: none;
}
</style>
</head>
<body>
<div :controller="test">
<div style="width:100%;" id="container">
<div class="horizontal_div">
<!--ms-for: (idx,childArr) in @array-->
<div class="item" :for="item in childArr">
{{item}}
</div>
<div class="item">分割</div>
<!--ms-for-end:-->
</div>
</div>
<button onclick="deleteArrayItem(0)">删除数组中第一个元素</button>
</div>
<script>
var configVm = avalon.define({
$id: "test",
array: [
["arr_item_1", "arr_item_2"],
["arr_item_3", "arr_item_4", "arr_item_5", "arr_item_6"]
]
});
function deleteArrayItem(idx) {
configVm.array.removeAt(idx);
configVm.array.removeAt(idx);
}
</script>
</body>
</html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将外面的注释循环改成一个DIV,用属性ms-for循环