1、问题:在使用avalon2.1.6写一个下拉选择组件,发现改变下拉数据源数组后ms-for不生效。
2、
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<div ms-controller="test">
<ms-selector ms-widget="@config"></ms-selector>
</div>
</body>
<script src="//cdn.bootcss.com/avalon.js/2.1.6/avalon.js"></script>
<script>
var test_vm = avalon.define({
$id:'test',
config: {
dataList: [
{
id: 1,
name: '11111',
},
{
id: 2,
name: '22222',
}
]
}
});
var selector_vm = null;
avalon.component('ms-selector', {
template: '<div>\
<input type="text" \
ms-on-keypress="@keypressOn">\
<ul ms-if="@dataList.length > 0">\
<li ms-for="el in @dataList">{{el.name}}</li>\
</ul>\
</div>',
defaults: {
dataList: [],
keypressOn: function(e) {
if(e.charCode === 13){
this.dataList.push({id:7, name:'sfsfsf'})
}
},
onInit: function(){
console.log('onInit')
},
onReady: function(){
selector_vm = this;
}
},
})
</script>
</html>
3、在组件文本框中输入回车后向组件dataList数组中加入一个元素,第一次可以成功,再次操作就不会增加了,控制台看组件vm里的dataList元素已经增加,但是ms-for并没有生效渲染出来。
重新scan()绑定渲染下试试呢