传送门:https://jsfiddle.net/chexian/...
<p ms-controller="index">
<p class="col-md-2" ms-for="htl in @hot.videolist" >
<pre>{{ htl.name }}</pre>
</p>
<hr>
<pre>{{ @hot.videolist|json }}</pre>
</p>
var vm = avalon.define({
$id: 'index',
hot: {
"videolist": [{
"name": "",
"desc": {
"name": ""
}
}],
"adsm": [{
"name": "",
"desc": {
"read": "0",
"answer": "0"
}
}]
}
});
setTimeout(function(){ // 模拟 ajax
vm.hot = {
"videolist": [
{
"name": "名称1",
"desc": {
"name": "lopo"
}
},{
"name": "名称2",
"desc": {
"name": "lopo"
}
},{
"name": "名称3",
"desc": {
"name": "lopo"
}
},{
"name": "名称4",
"desc": {
"name": "lopo"
}
},{
"name": "名称5",
"desc": {
"name": "lopo"
}
}
],
"adsm": [
{
"name": "名称",
"desc": {
"read": "1000",
"answer": "50"
}
},{
"name": "名称",
"desc": {
"read": "1000",
"answer": "50"
}
},{
"name": "名称",
"desc": {
"read": "1000",
"answer": "50"
}
}
]
}
},100)
结果:
如果把 hot
的 adsm
去掉,可以正常。
请问,为什么会这样子? 如果我要保留这个 adsm
需要怎么改?
补充: 这个问题在2.1.6之后才有的, 2.1.5正常
直接对数组变量进行赋值操作而导致的的变量变化 avalon未必能监控到,建议采用官方指定的方法对数组对象操作。这里将官方文档提到方法摘录于下:
根据这些方法,可以改写ajax提交中的方法如下: