BG-UI,一個(gè)可以快速上手的后臺(tái)UI框架

BG-UI,一個(gè)可以快速上手的后臺(tái)UI框架

1.簡(jiǎn)述

BG-UI
BG-UI

此項(xiàng)目為后臺(tái)UI框架,并根據(jù)url中的hash提供簡(jiǎn)單的路由功能,頁(yè)面的數(shù)據(jù)渲染依然交給服務(wù)器端。
UI基于BootStrap3。兼容移動(dòng)端。兼容IE8+及其它主流瀏覽器。
github地址
演示地址

2.目錄結(jié)構(gòu)

public
  ┗css
    ┠vendor      //存放第三方css文件
    ┗basic.css   //基礎(chǔ)css
  ┗images
  ┗js
    ┠vendor      //存放第三方j(luò)s文件
    ┠ajaxForm.js //所有ajax提交都由ajaxForm.js進(jìn)行包裝(非第三方插件,為作者編寫)
    ┗basic.js    //基礎(chǔ)js
tpl
  ┠...           //存放演示頁(yè)面,目錄結(jié)構(gòu)隨意
  ┠...
  ┗index.html    //主頁(yè)面
server            //存放測(cè)試用服務(wù)器腳本
index.html        //入口(登錄頁(yè)面)

3.配置

在主頁(yè)面加載basic.js文件之前定義:

window.common_conf = {
    defaultHash: 'page/desktop.html',    //hash的缺省值
    baseURL: './',                       //見(jiàn)下文"路由"
    navJSON: '../server/nav.json'        //導(dǎo)航菜單的json數(shù)據(jù),具體格式可以查看nav.json文件
};

4.路由

實(shí)現(xiàn)方式:監(jiān)聽(tīng)hashChange事件,利用"common_conf.baseURL" + "當(dāng)前頁(yè)面的hash"形成請(qǐng)求地址,并用ajax請(qǐng)求服務(wù)器來(lái)獲取需要顯示的html。

5.表單的提交、驗(yàn)證、回調(diào)

5.1基本用法

只要頁(yè)面中的<form>標(biāo)簽中包含class為.J_ajaxSubmitBtn的元素,則此表單均受ajaxForm.js(非第三方插件,為作者編寫)控制。
當(dāng).J_ajaxSubmitBtn元素被點(diǎn)擊后,ajaxForm.js會(huì)自動(dòng)收集<form>標(biāo)簽上的屬性值,并形成一次ajax提交,例如:

<form
    method="get"
    action="../server/ajaxReturn.json"
    data-validate="validate1"
    data-callBack="callback1"
    data-useDefaultCallBack="on"
    data-sendingText="提交中"
    >
    <input type="text" placeholder="新聞標(biāo)題" name="title">
    <button type="button" class="btn btn-primary J_ajaxSubmitBtn">查詢</button>
</form>

<script>
    function validate1($from) {
        var title = $from.find('input[name="title"]');
        if ($.trim(title.val()) == '') {
            return '新聞標(biāo)題不能為空';
        }

        return true;
    }
    function callback1(returnData, $from) {
        console.log($from);
    }
</script>
  • method:提交方式(必須設(shè)置)
  • action:提交地址(必須設(shè)置)
  • data-validate:提交之前的驗(yàn)證函數(shù)名
  • data-callBack:服務(wù)器響應(yīng)后的自定義回調(diào)函數(shù)名
  • data-useDefaultCallBack:服務(wù)器響應(yīng)后是否執(zhí)行框架的默認(rèn)動(dòng)作。只要值不為'off'都會(huì)調(diào)用。
  • data-sendingText:提交過(guò)程中.J_ajaxSubmitBtn的提示文字

5.2默認(rèn)動(dòng)作

前面的data-useDefaultCallBack配置項(xiàng)已經(jīng)提到了,瀏覽器接到響應(yīng)后ajaxForm.js會(huì)執(zhí)行一些默認(rèn)的動(dòng)作。
執(zhí)行的默認(rèn)動(dòng)作由服務(wù)器返回的json進(jìn)行定義:

{
  "referer": "",
  "refresh": true,
  "state": "success",
  "message": "提交成功"
}
  • referer:刷新的目標(biāo)地址,留空則表示刷新當(dāng)前頁(yè)
  • refreshtrue|false是否刷新
  • state:提交是否成功,只有當(dāng)值為"success"時(shí)才視為成功(才會(huì)判斷是否執(zhí)行刷新操作)
  • message:提示信息,state不為"success"時(shí)會(huì)進(jìn)行提示

注意這里的referer的值為將要顯示的頁(yè)面對(duì)應(yīng)的hash。如果提供的referer以http或https開(kāi)頭,則整個(gè)控制臺(tái)都會(huì)被刷新

5.3驗(yàn)證

<form>標(biāo)簽中的data-validate用來(lái)配置驗(yàn)證函數(shù)名,此驗(yàn)證函數(shù)在進(jìn)行ajax提交前會(huì)接收到被jQuery封裝的form DOM對(duì)象(具體可查看"5.1基本用法"中的代碼示例)。
自定義函數(shù)返回true則正常提交;可以返回字符串來(lái)對(duì)錯(cuò)誤信息進(jìn)行提示,錯(cuò)誤的提示方式已經(jīng)在框架中進(jìn)行了封裝。

6.License

Under MIT License. Copyright by 李昱(liyu365)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,037評(píng)論 25 709
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,315評(píng)論 4 61
  • 今天在這里,我想說(shuō)說(shuō)一個(gè)少年。 那個(gè)少年,來(lái)自十年前。 我記得少年當(dāng)時(shí)笑容有些羞澀,臉色白的像張紙,他低沉的聲音像...
    人間方圓閱讀 874評(píng)論 0 1
  • 愛(ài)恨離別的我們 活著多為難啊 飛機(jī)飛行的幾小時(shí) 已天涯 你說(shuō)再漂泊幾年 興許能好轉(zhuǎn) 但命運(yùn)的風(fēng)車喲 早已是別人手里...
    Aleryuen閱讀 312評(píng)論 0 1

友情鏈接更多精彩內(nèi)容