code: function(data, vmodels) {
              var oldStyle = data.param,
                      text = data.value,
                      rightExpr
              data.handlerName = "class"
              if (!oldStyle || isFinite(oldStyle)) {
                  data.param = "" //去掉数字
                  var noExpr = text.replace(rexprg, function(a) {
                      return Math.pow(10, a.length - 1) //将插值表达式插入10的N-1次方来占位
                  })
                  var colonIndex = noExpr.indexOf(":") //取得第一个冒号的位置
                  if (colonIndex === -1) { // 比如 ms-class="aaa bbb ccc" 的情况
                      var className = text
                  } else { // 比如 ms-class-1="ui-state-active:checked" 的情况 
                      className = text.slice(0, colonIndex)
                      rightExpr = text.slice(colonIndex + 1)
                      parseExpr(rightExpr, vmodels, data) //决定是添加还是删除
                      if (!data.evaluator) {
                          log("debug: ms-class '" + (rightExpr || "").trim() + "' 不存在于VM中")
                          return false
                      } else {
                          data._evaluator = data.evaluator
                          data._args = data.args
                      }
                  }
                  var hasExpr = rexpr.test(className) //比如ms-class="width{{w}}"的情况
                  if (!hasExpr) {
                      data._class = className
                  }
                  parseExprProxy("", vmodels, data, (hasExpr ? scanExpr(className) : null))
              } else if (data.type === "class") {
                  parseExprProxy(text, vmodels, data)
              }
          }
docs: 根据VM的属性值或表达式的值切换类名，ms-class="xxx yyy zzz:flag" http://www.cnblogs.com/rubylouvre/archive/2012/12/17/2818540.html