fastadmin中調(diào)用js的方法
想要了解fastadmin中的js是怎么調(diào)用的,就應(yīng)該先了解RequireJs。
RequireJs是模塊化工具,每一個(gè)我們自己的js文件或者庫(kù)都可以看成是一個(gè)模塊,按需引入。寫法如下:
<script data-main="js/main" src="js/require.js"></script>
src是引入requrejs框架文件,data-main是我們自己的js的總?cè)肟?。js/main對(duì)應(yīng)的js文件是js/main.js(可自行命名)
我們?cè)趯戫?xiàng)目的時(shí)候肯定會(huì)用到一些js和js類庫(kù),那RequireJs是怎么引用的,下面來(lái)介紹一下,
引入第三方庫(kù):
require.config({ paths: { 'lang': "empty:", 'form': 'require-form', 'table': 'require-table', 'upload': 'require-upload', 'validator': 'require-validator', 'drag': 'jquery.drag.min', 'drop': 'jquery.drop.min', 'echarts': 'echarts.min', 'echarts-theme': 'echarts-theme', 'jquery': '../libs/jquery/dist/jquery.min', }, // shim依賴配置 shim: { 'addons': ['backend'], 'bootstrap': ['jquery'], 'bootstrap-table': { deps: [ 'bootstrap', // 'css!../libs/bootstrap-table/dist/bootstrap-table.min.css' ], exports: '$.fn.bootstrapTable' }, 'bootstrap-table-lang': { deps: ['bootstrap-table'], exports: '$.fn.bootstrapTable.defaults' }, }, map: { '*': { 'css': '../libs/require-css/css.min' } }, waitSeconds: 30, charset: 'utf-8' // 文件編碼 });
config中paths用來(lái)配置支持AMD規(guī)范的庫(kù)和js文件,shim是用來(lái)配不支持AMD規(guī)范的js。配好之后,假設(shè)現(xiàn)在要使用jquery和bootstrap,只要用require方法:
require(['jquery', 'bootstrap'], function ($, undefined) { //該function將在引入jquery和bootstrap完成之后執(zhí)行。 });
要使用我們自己定義的js,首先得用模塊化的方式編寫我們的js,使用define定義一個(gè)模塊:
define('modelname',['jquery','xxx'], function ($,xxx) { var hehe = { function1: function () { }, function2: function () { }, function3: function () { } }; return hehe; });
define有三個(gè)參數(shù),第一個(gè)是模塊名(可以不寫,默認(rèn)與模塊名與文件名同名),第二個(gè)是當(dāng)前模塊依賴的其他模塊,第三個(gè)是一個(gè)function,模塊體,要求必須return一個(gè)數(shù)據(jù)。
PS:下面看下Fastadmin里面的js運(yùn)行原理
以category.js為例來(lái),說(shuō)明一下fastadmin里面js綁定事件的運(yùn)行原理。
第一行,定義引用的組件
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) { add: function () { Controller.api.bindevent(); },
這個(gè)代碼,代表調(diào)用api對(duì)象的bindevent函數(shù)。函數(shù)定義如下:
bindevent: function () { $(document).on("change", "#c-type", function () { $("#c-pid option[data-type='all']").prop("selected", true); $("#c-pid option").removeClass("hide"); $("#c-pid option[data-type!='" + $(this).val() + "'][data-type!='all']").addClass("hide"); $("#c-pid").selectpicker("refresh"); }); Form.api.bindevent($("form[role=form]")); }
函數(shù)第一部分是綁定類別變動(dòng)的事件。
第二部分是是綁定窗體時(shí)間。
綁定窗體的代碼在/public/assets/js/require-form.js文件里面。
這里面定義了Form對(duì)象,在這里我們可以看到events事件。
里面包含validator,主要是做客戶端驗(yàn)證。有了這個(gè)就等于自動(dòng)綁定了form驗(yàn)證,驗(yàn)證規(guī)則自己定制。
selectpicker 主要用于select下拉選擇。
此外還有selectpage、cxselect、citypicker、datetimepicker、plupload、faselect、fieldlist,此外可以自己定制。
總結(jié)
以上所述是小編給大家介紹的fastadmin中調(diào)用js的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
JavaScript實(shí)現(xiàn)敏感信息脫敏的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何使用JavaScript實(shí)現(xiàn)敏感信息脫敏,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04bootstrap datepicker插件默認(rèn)英文修改為中文
這篇文章主要為大家詳細(xì)介紹了bootstrap datepicker插件默認(rèn)英文修改為中文的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07JS延時(shí)器提示框的應(yīng)用實(shí)例代碼解析
這篇文章主要介紹了JS延時(shí)器提示框的應(yīng)用實(shí)例代碼解析 的相關(guān)資料,需要的朋友可以參考下2016-04-04JavaScript數(shù)據(jù)綁定實(shí)現(xiàn)一個(gè)簡(jiǎn)單的 MVVM 庫(kù)
MVVM 是 Web 前端一種非常流行的開(kāi)發(fā)模式,利用 MVVM 可以使我們的代碼更專注于處理業(yè)務(wù)邏輯而不是去關(guān)心DOM 操作。接下來(lái)通過(guò)本文給大家介紹JavaScript使用數(shù)據(jù)綁定實(shí)現(xiàn)一個(gè)簡(jiǎn)單的 MVVM 庫(kù),感興趣的朋友一起學(xué)習(xí)吧2016-04-04javascript嵌套函數(shù)和在函數(shù)內(nèi)調(diào)用外部函數(shù)的區(qū)別分析
這篇文章主要介紹了javascript嵌套函數(shù)和在函數(shù)內(nèi)調(diào)用外部函數(shù)的區(qū)別,需要的朋友可以參考下2016-01-01JavaScript數(shù)據(jù)結(jié)構(gòu)之棧實(shí)例用法
在本篇文章里小編給大家分享了關(guān)于JavaScript數(shù)據(jù)結(jié)構(gòu)之棧實(shí)例用法內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2019-01-01js實(shí)現(xiàn)時(shí)間軸自動(dòng)排列效果
本文主要介紹了js實(shí)現(xiàn)新增加事件:時(shí)間軸自動(dòng)排列效果的實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03精解window.setTimeout()&window.setInterval()使用方式與參數(shù)傳遞問(wèn)題!
精解window.setTimeout()&window.setInterval()使用方式與參數(shù)傳遞問(wèn)題!...2007-11-11常常會(huì)用到的截取字符串substr()、substring()、slice()方法詳解
javascript中給我們提供三個(gè)截取字符串的方法,分別是:slice(),substring()和substr()。下面我們對(duì)這三個(gè)函數(shù)進(jìn)行詳細(xì)說(shuō)明和比較,需要的朋友可以參考下2015-12-12