经验教训心得体会汇总
1.自0.981版,不再支持ms-each-el-index="xxx"的写法了,想取index要用$outer,即el.$outer.$index,就是外面的$index了。
ms-each-el-index="xxx"
el.$outer.$index
2.日期选择插件使用注意点: 在input 上写 ms-widget="datepicker" style="position: relative;" 注意要在页面之初引用 <script src="~/Scripts/avalon.require.text.js"></script>
ms-widget="datepicker" style="position: relative;"
<script src="~/Scripts/avalon.require.text.js"></script>
3.select的事件如果用ms-change="xxx",它要失去焦点才会触发。可改为ms-mouseleave="xxx",不过,总觉得这个mouseleave有些违合感。具体例子请见:使用avalon 实现一个订座系统(注,这个例子里用的是ms-change,是不能良好工作的。)
ms-change="xxx"
ms-mouseleave="xxx"
mouseleave
ms-change
此例子中,最后把ms-change改为ms-click,可以良好地工作。
ms-click
4.关于用$id取vm的注意点。对于用avalon.define定义的vm,所有的vm都放在avalon.vmodels中,可以用avalon.vmodels[$id]来取得相应的vm;但要注意,通过ms-each方式生成的代理vm,不能这样使用。可通过绑定的dom元素的事件回调传参解决。如: ms-click=callback(el)
avalon.vmodels[$id]
ms-each
ms-click=callback(el)
5.如何清空vm中的定义好的数组? 例如: var model = avalon.define('xxx', function(vm){ vm.arr = [1,2,3,4] })
var model = avalon.define('xxx', function(vm){ vm.arr = [1,2,3,4] })
要清空arr有三种方式: (1)model.arr=[] (2)model.arr.clear() (3)model.arr.removeAll()
model.arr=[]
model.arr.clear()
model.arr.removeAll()
不要使用model.arr.length=0的方式;用splice也可以,但麻烦。
model.arr.length=0
splice
There was an error while loading. Please reload this page.