• TODO supply a title


    avalon2与avalon1的属性操作虽然都是使用ms-attr,但用法完全不一样。

    avalon1是这样操作属性的

    其语法为

    
    ms-attr-valueName="vmProp"
    
    

    有多少个属性就写多个ms-attr-。其中不能省略。此外,还存在ms-title, ms-alt,ms-src, ms-href, ms-selected, ms-checked等等缩略写法。但估计很少人知道,到底哪些属性可以缩写,哪些不能。

    avalon2从减轻用户的记忆出发,将你要操作的属性全部打包成一个对象,并规定,只能属性值才能使用@开头的vm属性。此外,avalon不存在ms-title这样的缩略写法。

    或者

    attrObj为vm的一个对象属性,但这个不太常用。

    或者

    
    

    ms-attr直接对应一个数组。这个灵感是来自ReactNative的style指令,它们可以通过数组,传入多个样式对象…………

    不过无论你怎么搞,最后你传的东西能保持avalon内部能将它变回一个对象就行了。

    有时你的对象很长,需要换行,avalon2也是支持的,即便你写得像以下这么恶心,avalon2还是能认出来。

    
    <!DOCTYPE html>
    <html>
        <head>
            <title>TODO supply a title</title>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width">
            <script src="./dist/avalon.js"></script>
            <script >
                var vm = avalon.define({
                    $id: "test",
                    title:111,
                    src: "222",
                    lang: 333
                })
    
            </script>
        </head>
        <body ms-controller="test" >
              <div  aaa='ddd' bbb=333 
                    ms-attr='{title: @title,
                        ddd:@src, 
                        lang:@lang}' >{{
                       @src ? 333: 'empty'
                  }}</div>
              <input ms-duplex="@src"/>
        </body>
    </html>
    
    

    但为了性能起见,ms-attr最好还是保持在一行吧。

    avalon2的ms-attr可以支持过滤器,但没有提供现成的过滤器,虽然用户进行编写。不过需要注意的是,这个过滤器要处理的是{title:'111',ddd: '222', lang:222}这样的对象,而不是一个字符串。比如我们要将需要个属性转换成日期格式,你可以在你的过滤器里调用avalon自带的date过滤器。

  • 相关阅读:
    GitHub代码阅读神器,你值有拥有!
    SpringBoot项目构建成jar运行后,如何正确读取resource下的文件
    基于SpringBoot-Dubbo的微服务快速开发框架
    基于SpringBoot的Web API快速开发基础框架
    野蛮生长的前端,从杂牌军到正规军
    让Redis突破内存大小的限制
    myeclipse 8.5-10.0 安装 svn 方法
    几秒后刷新页面
    不错的Spring学习笔记(转)
    Spring学习笔记(三)-类扫描的注解
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/5414731.html
Copyright © 2020-2023  润新知