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"

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

原文地址:https://www.cnblogs.com/jianIsTheBest/p/11255842.html