ms-class是avalon用得最多的几个绑定之一,也正因为如此其功能一直在扩充中。根据时期的不同,分为旧风格与新风格两种。

旧风格是指正在ms-class后面跟着类外,然后在绑定值中添加表达式,即ms-class-xxx="prop"。其中xxx为一个类名。在jQuery ui中,一些类名非常长,以-连接起来,如ui-widget-content,我们直接把它加在后面好了。比如下例:

<div
ms-class-ui-datepicker-week-end="weekend"
ms-class-ui-state-disabled="disabled"
ms-class-ui-datepicker-unselectable="selected">{{date}}</div>

旧风格使用简单,易上手,只要记得在ms-class-后加类名,=号加表达式,来控制它的添加移除就行了。但缺点也明显:

  • 每个ms-class只能控制一个类名,如果有N个类名其实都是由同一个绑定属性控制的,也不得分开写。
  • ms-class后面只能接受全部是小写的类名,因为在HTML 规范中,属性名都只能是小写,你就算大写了,它也会转换为小写 。
  • 有些类名,我们想动态生成出来。

针对它们,新风格搞出来,它要求ms-class后面什么也不写,或只跟着整数,然后在属性值的左边写类名,中间写一个冒号,右边写表达式。

比如第一个多类名控制的需求,可以这样做:ms-class="aaa bbb ccc:prop"

第2需求,可以这样做:ms-class="AAA className : 1+ 2"。

第3需求,可以这样做:ms-class="aaa width{{w}} height{{h}}: ddd", 当w=200, h=300, ddd为true时,它会为绑定的元素节点添加三个类名,aaa,width200,height300。

如果要用到多个ms-class呢,新风格可以这样做

<div
ms-class="aaa bbb"
ms-class="ui-state-disabled:disabled"
ms-class-="ui-state-disabled:disabled"
ms-class-1="ui-datepicker-ok:test">{{date}}</div>

此外,在新风格中,如果类名是通过插值表达式实现,比如上面的ms-class="aaa width{{w}} height{{h}}: ddd",当w=200时,它会为元素添加width200,然后过段时间,w变成300时,它会去掉之前的width200,再添加width300,非常人性化。详见这里

ms-class的进化的更多相关文章

  1. JZOJ 3518. 【NOIP2013模拟11.6A组】进化序列(evolve)

    3518. [NOIP2013模拟11.6A组]进化序列(evolve) (File IO): input:evolve.in output:evolve.out Time Limits: 1000 ...

  2. ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus

    ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus 本文承接我的上一篇博文: ASP.NET 5 Linux部署,那篇文章主要是针对最新的ASP. ...

  3. Atitit 软件架构方法的进化与演进cs bs soa roa  msa  attilax总结

    Atitit 软件架构方法的进化与演进cs bs soa roa  msa  attilax总结 1.1. 软件体系架构是沿着单机到 CS 架构,再到 BS 的三层架构甚至多层架构逐步发展过来的,关于 ...

  4. Atitit 编程语言编程方法的进化演进 sp  COP ,AOP ,SOP

    Atitit 编程语言编程方法的进化演进 sp  COP ,AOP ,SOP 1.1.  Sp  oop>>COP ,AOP ,SOP1 1.2. Sp  oop 结构化方法SP(Stru ...

  5. js生成一个不重复的ID的函数的进化之路

    在MongoDB中的ObjectID,可以理解为是一个不会重复的ID,这里有个链接http://blog.csdn.net/xiamizy/article/details/41521025感兴趣可以去 ...

  6. MS SQL巡检系列——检查外键字段是否缺少索引

    前言感想:一时兴起,突然想写一个关于MS SQL的巡检系列方面的文章,因为我觉得这方面的知识分享是有价值,也是非常有意义的.一方面,很多经验不足的人,对于巡检有点茫然,不知道要从哪些方面巡检,另外一方 ...

  7. MS SQL巡检系列——检查重复索引

    前言感想:一时兴起,突然想写一个关于MS SQL的巡检系列方面的文章,因为我觉得这方面的知识分享是有价值,也是非常有意义的.一方面,很多经验不足的人,对于巡检有点茫然,不知道要从哪些方面巡检,另外一方 ...

  8. 差分进化算法 DE-Differential Evolution

    差分进化算法 (Differential Evolution)   Differential Evolution(DE)是由Storn等人于1995年提出的,和其它演化算法一样,DE是一种模拟生物进化 ...

  9. 群集中的MS DTC分布式事务协调器

    MS DTC在大多数SQL 服务器下都需要安装,若只是安装数据库引擎或Analysis 服务可不安装DTC.如果后需要使用分布式事务,则可在SQL Server群集安装完成后再安装DTC. 一.群集M ...

  10. [Evolutionary Algorithm] 进化算法简介

    进化算法,也被成为是演化算法(evolutionary algorithms,简称EAs),它不是一个具体的算法,而是一个“算法簇”.进化算法的产生的灵感借鉴了大自然中生物的进化操作,它一般包括基因编 ...

随机推荐

  1. 使用ajaxfileupload插件提示Uncaught TypeError:has no method 'handleError'

    最近使用ajaxfileupload插件上传文件时,后台正常运行时,可以正常使用:当后台出现异常时,上传后没有任何反应,也无任何返回信息,使用chrome查看时,发现ajaxfileupload插件报 ...

  2. 什么是PHP Guzzle?

    Guzzle是一个使得利用PHP实现发送HTTP 请求,方便和web service集成的PHP 客户端模拟组件.一句话,它就像一个PHP写的浏览器.当你的服务端程序需要作为客户端来访问其他的serv ...

  3. Mobile Assistant

    闲来无事,分享一个小东西--手机小助手,历时两周,这里选择几个不错的界面以示效果! 如果有感兴趣的部分,欢迎随时交流!

  4. HDU 1372 Knight Moves【BFS】

    题意:给出8*8的棋盘,给出起点和终点,问最少走几步到达终点. 因为骑士的走法和马的走法是一样的,走日字形(四个象限的横竖的日字形) 另外字母转换成坐标的时候仔细一点(因为这个WA了两次---@_@) ...

  5. Windows下PhpStorm结合WAMP开发Phalcon应用的配置

    最近要利用Phalcon框架开发PHP应用,因为以前基本没接触过PHP更没用过PHP框架,结果整环境整IDE配置什么的花了好长时间 学习慕课网上的PHP入门教程安装了WAMP(windows+apac ...

  6. (转) Python Generators(生成器)——yield关键字

    http://blog.csdn.net/scelong/article/details/6969276 生成器是这样一个函数,它记住上一次返回时在函数体中的位置.对生成器函数的第二次(或第 n 次) ...

  7. Aviary 滤镜 教程 照片编辑器

    Aviary是一个国外的非常强大的照片编辑器,各种功能,但是是以静态库的形式存在的,不开源,但是很好用. 1.到官网上面下载sdk https://github.com/AviaryInc/Mobil ...

  8. Android按键事件传递流程(二)

    5    应用层如何从Framework层接收按键事件 由3.2和4.5.4节可知,当InputDispatcher通过服务端管道向socket文件描述符发送消息后,epoll机制监听到了I/O事件, ...

  9. tilecache2.11在windows apache2.22安装部署

    tilecache2.11在windows apache2.22安装部署 蔡建良 2013-09-03 一.安装环境 操作系统: Windows7 32位 Apache2.22 Python2.5 m ...

  10. 页面异步加载javascript文件

    昨天听一同事说的异步加载js文件,可以提高页面加载速度.具体方法如下:(function() {  var ga = document.createElement('script'); ga.type ...