• API文档-BASE-BASE


    1、mini.parse()

    描述:将html标签解析为miniui控件。解析后,才能使用mini.get获取到控件对象

    a、只有带有miniui的className的元素才会被解析

    b、动态添加带miniui的className的元素需要经过mini.parse()解析。

    2、mini.layout()

    描述:布局调整控件达到合适尺寸。

    看看实现方法:

    mini.layout = function(_, $) {
        if (!mini.enableLayout) return;
        if (!document.body) return;
        function A(C) {
            if (!C) return;
            var E = mini.get(C);
            if (E) {
                if (E['doLayout']) if (!mini._Layouts[E.uid]) {
                    mini._Layouts[E.uid] = E;
                    if ($ !== false || E['isFixedSize']() == false) E['doLayout'](false);
                    delete mini._Layouts[E.uid]
                }
            } else {
                var _ = C.childNodes;
                if (_) for (var D = 0,
                G = _.length; D < G; D++) {
                    var F = _[D];
                    try {
                        F.toString()
                    } catch(B) {
                        continue
                    }
                    A(F)
                }
            }
        }
        if (!_) _ = document.body;
        A(_);
        if (_ == document.body) mini.layoutIFrames()
    };

    就是遍历body的每个元素,看看是不是mini控件,如果是的话就尝试调用控件的dolayout属性对应的方法以实现布局。

    具体效果不清楚是什么样,先不管这一条。

    3、mini.get(id)

    描述:根据id获取控件对象

    实现方法:

    get: function(_) {
            if (!_) return null;
            if (mini.isControl(_)) return _;
            if (typeof _ == "string") if (_.charAt(0) == "#") _ = _.substr(1);
            if (typeof _ == "string") return mini.components[_];
            else {
                var $ = mini.uids[_.uid];
                if ($ && $.el == _) return $
            }
            return null
        },

    当我们传入id时,带不带#都行,然后会从mini.components中根据id取出对应的mini控件对象。为什么从这个里面取呢?当我们创建mini控件对象时,会在基类O010l0中调用mini.reg()方法,如下所示:

    O010l0:

    O010l0 = function() {
        this.o1o11l = {};
        this.uid = mini.newId(this.lo11);
        this._id = this.uid;
        if (!this.id)
            this.id = this.uid;
        mini.reg(this)
    };

    mini.reg:传入的$参数为我们创建的mini控件对象

    reg: function($) {
            this.components[$.id] = $;
            this.uids[$.uid] = $
        },

    这样就可以知道为什么我们可以根据id从mini.components,根据uid从mini.uids(mini.getByUid(uid))中获取。

    4、mini.getByUid(uid)

    描述:根据uid获取控件对象

    实现方法:

    getbyUID: function($) {
            return mini.uids[$]
        },

    5、mini.getByName(name)
    mini.getByName(name, parent)

    描述:根据name获取单个控件

    参数描述:

    name:控件Name

    parent:限定获取控件的范围

    实现方法:

        getsbyName: function(B, C) {
            var D = mini.isControl(C),//判断parent是否为mini控件
            $ = C;
            if (C && D) C = C.el;//如果parent为mini控件的话,就获取el属性
            C = l1O1(C);//这个方法当只有1个参数时,接受两种情况:1、string 类型的 id值,返回对应元素;2、非string类型,返回参数本身
            C = C || document.body;//当C不为空时,C=C;否则C=document.body
         //在mini.uids利用第一个参数方法寻找,将查找结果返回
    var _ = mini.findControls(function($) { if (!$.el) return false; if ($.name == B && O1O0(C, $.el)) return true; return false }, this);
         //如果上述情况没找到,调用控件对象的getbyName方法再找一遍,如果有的话。可以解决动态添加未调用mini.parse()的情况?
    if (D && _.length == 0 && $ && $['getbyName']) {
    var A = $['getbyName'](B);
                if (A) _.push(A)
            }
            return _
        },
        getbyName: function($, _) {
            return mini.getsbyName($, _)[0]
        },
        getByName: function($, _) {
            return mini['getbyName']($, _)
        },

    主要的是getsbyName这个方法。过程写在代码上了。现在看一下parent我们可以传递写什么?1、mini控件对象;2、元素id值。

    注意点:

    a、如果传递可以根据name获取到parent

    b、只能获取mini控件元素,因为是从uids里面去遍历的。

    6、mini.getsByName(name)
    mini.getsbyName(name, parent)

    描述:根据name获取多个控件

    实现方法:

    getsByName: function($, _) {
            return mini.getsbyName($, _)
        },

    参考5.

    7、mini.formatNumber(number, format)

    描述:格式化数字。
    format取值,参考:

      • 小数点和千分位:format="n"
      • 货币格式:format="c"。
      • 百分比格式:format="p"。
      • 自定义格式:format="¥#,0.00"

    处理还挺多的。下次再编辑吧。

  • 相关阅读:
    Kubernetes tutorial
    MySQL 安装示例数据库(employee、world、sakila、menagerie 等)
    Schema 与数据类型优化
    Linux 初始化系统 systemd
    Linux 初始化系统(init)- systemd
    Vagrant 手册之 Provisioning
    Vagrant 手册之 Provisioning
    Vagrant 手册之 Provisioning
    Vagrant 手册之 Vagrantfile
    Vagrant 手册之 Vagrantfile
  • 原文地址:https://www.cnblogs.com/jianIsTheBest/p/11255842.html
Copyright © 2020-2023  润新知