Skip to content

Instantly share code, notes, and snippets.

@otakustay
Last active August 29, 2015 13:58
Show Gist options
  • Save otakustay/10088993 to your computer and use it in GitHub Desktop.
Save otakustay/10088993 to your computer and use it in GitHub Desktop.
ESUI Next
  1. 更适合MVVM模型的架构

     <ui-text-box data-ui-value="~name"></ui-text-box>
    
     <script>
         var Model = require('model/Model');
         var user = new Model();
         user.set('name', 'foo');
    
         require('esui-next').init(document.body, { model: user });
         model.set('name', 'bar'); // 控件自动变为bar
    
         // 用户在控件输入alice
         model.get('name'); // <-- alice
     </script>
    
  2. 集合的双向绑定

     <ui-table data-ui-datasource="@datasouce">
     </ui-table>
    
     <script>
         var Collection = require('model/Collection');
         var list = new Collection();
         list.add(foo);
    
         require('esui-next').init(document.body, { model: user });
         list.add(bar);
         list.remove(foo);
     </script>
    
  3. 行为模型

     <ui-label>
         <!-- 可在父容器范围内拖动 -->
         <behavior-draggable data-ui-containment="parent"></behavior-draggable>
         <!-- 联动其它控件 -->
         <behavior-cascade data-ui-target="#foo" data-ui-action="visibility"></behavior-cascade>
         <behavior-cascade data-ui-target="#bar" data-ui-action="availablity"></behavior-cascade>
         <ui-property name="text">Hello World</ui-property>
     </ui-label>
    
  4. 控件自带模板

     <ui-select data-ui-datasource="@datasource">
         <script type="text/template" data-for="itemTemplate">
             [[ if: ${item.master} ]]
                 <span style="color: red">${item.text}</span>
             [[ else: ]]
                 <span>${item.text}</span>
             [[ /if ]]
         </script>
     </ui-select>
    
@otakustay
Copy link
Author

模板那块,是否使用tempalte 节点替代? 这样可以接近 web components。

理想的就应该那样,我一直被浏览器兼容性拖着想法,还不敢放开步子……因为template其实是个功能性元素,怕兼容性搞不好

另外你可以考虑先去把oo.js做了,让ER和ESUI等继承啥的全用你的吧

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment