首页 > 代码库 > avalon实例

avalon实例

要求:1. 在文本框中输入内容时,同时在下方显示value值

ms-controller: 是用来设置avalon控制域的,一个页面可以有多个控制域,一个控制域对应一个Model

定义Model层:在avalon中model层是用js来实现的,通过avalon.define()方法定义,第一个参数和ms-controller保持一致,第二个参数是一个函数。

{{name}}:这个叫插值表达式,model中的name属性值在这里体现

ms_duplex:叫双工绑定,avalon教程中这样解释(它除了负责将VM中对应的值放到表单元素的value中,还对元素偷偷绑定一些事件,用于监听用户的输入从而自动刷新VM),在文本框中每改动一个字符,都会发生同步。不设置ms-duplex时,model中的数据变化会自动更新到dom中,而设置了ms-duplex,dom中的数据的变化也会触使vm的更新。双向同步,强大的属性。

效果图:

2. 实现一个全选的功能

 点击全选按钮的时候,子项全部选中,全选未选中,当子项全部选中的时候,全选按钮也自动选中

 ms-repeat:这里是循环遍历数组

 这里为每一个复选框设置了ms-duplex属性,selected是一个数组,当我们勾选时候,avalon会将元素的value值push进数组里边

 vm.checkAllbool = vm.arr.length === vm.selected.length;//“===”的优先级比“=”的高,所以先执行,checkAllbool的值是布尔值,这里默认状态是false

 给全选按钮添加了一个click事件,选中的时候把arr数组赋给selected,未选中的话把selected数组清空。

 $watch可以监听Model中对象及对象的属性的变化,这里是监听selected数组的变化,当子项全部勾选时,全选按钮也自动勾选。

 

效果图

 从刚开始看avalon时云里雾里的感觉到现在已经有了一点信心,在我看的懂的地方,avalon的某些属性、功能拍案叫绝,好极了!待我对avalon更多运用熟悉的时候,做一些复杂的实现,例如下图的下拉框,还有弹出层、可拖拽的弹出层。

  

avalon实例