zoukankan      html  css  js  c++  java
  • NUI控件扩展

    摘要:NUI组件是公司新一代的前端开发框架,它精致优雅的前端编程模型,是大家能够,或者想接受学习它的重要原因,在使用它的时候,一定不免会想增加自己的控件,让别人也能够如此优雅的使用。 其实NUI的扩展机制不是很复杂,下面说说如何扩展一个新的NUI控件

    NUI组件是公司新一代的前端开发框架,它精致优雅的前端编程模型,是大家能够,或者想接受学习它的重要原因,在使用它的时候,一定不免会想增加自己的控件,让别人也能够如此优雅的使用。

    其实NUI的扩展机制不是很复杂,下面说说如何扩展一个新的NUI控件,一共分为以下两步:

       定义一个新的js文件,比如叫XxxControlImpl.js,js文件内容如下:

        //定义XxxControl的构造方法
       nui.XxxControl= function () {
           nui.XxxControl.superclass.constructor.call(this);
       };
       //定义XxxControl的继承控件及其主体
       nui.extend(
           nui.XxxControl,
           nui.XxxControlSuper, //要继承的父控件
           //控件主体
           {
               uiCls: "nui-xxx", //注意:这个属性必须设置,否则调用nui.parse()方法不会正确解析此控件
               yyy : "", //新属性
        setYyy: function(value){
        this.yyy = value;
        },
        getYyy: function(){
        return this.yyy;
        },
               //属性解析赋值
               getAttrs: function (el) {
                   var attrs = nui.XxxControl.superclass.getAttrs.call(this, el);
                   var jq = jQuery(el);
                   nui._ParseString(el, attrs,
                       ["yyy"]
                   );
                   return attrs;
               },
               //初始化此控件调用的方法
               _create: function () {
               nui.XxxControl.superclass._create.call(this);
                   。。。。。。
               },
               //初始化事件调用的方法
               _initInputEvents: function () {
                   nui.XxxControl.superclass._initInputEvents.call(this);
                   this.on("buttonclick", this.__ZzzClick, this);
                   。。。。。。
               }
       });
       //把定义XxxControl控件注册到NUI体系中
       nui.regClass(nui.XxxControl, 'xxx');

       使用,比如一个test.html中的内容如下:

        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
       <html>
       <head>
       <title>选择资源</title>
           <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
           <script src="common/nui/nui.js" type="text/javascript"></script>
           <script src="XxxControlImpl.js" type="text/javascript"></script>
       </head>
       <body>
           <input id="test" class="nui-xxx"/>
           <script type="text/javascript">
            nui.parse();
           </script>
       </body>
       </html>
    通过上面两步,是不是很简单的就可以扩展出一个新的控件?
  • 相关阅读:
    设计模式之工厂模式大后期
    Net基础恶补
    TPL异步并行编程之回调
    Net线程安全集合
    【记录贴】树的深度最优路径分析 [ 未完全版 ] 【原】
    java生产环境增量发版陷阱【原】
    expdp和impdp导入导出用法【转】
    exp和imp导入导出时表空间问题【未完】
    linux xargs【转】
    windows cmd命令 批处理bat 导增量jar包【原】
  • 原文地址:https://www.cnblogs.com/caozengling/p/5462288.html
Copyright © 2011-2022 走看看