fastadmin中調(diào)用js的方法
想要了解fastadmin中的js是怎么調(diào)用的,就應(yīng)該先了解RequireJs。
RequireJs是模塊化工具,每一個我們自己的js文件或者庫都可以看成是一個模塊,按需引入。寫法如下:
<script data-main="js/main" src="js/require.js"></script>
src是引入requrejs框架文件,data-main是我們自己的js的總?cè)肟?。js/main對應(yīng)的js文件是js/main.js(可自行命名)
我們在寫項(xiàng)目的時候肯定會用到一些js和js類庫,那RequireJs是怎么引用的,下面來介紹一下,
引入第三方庫:
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用來配置支持AMD規(guī)范的庫和js文件,shim是用來配不支持AMD規(guī)范的js。配好之后,假設(shè)現(xiàn)在要使用jquery和bootstrap,只要用require方法:
require(['jquery', 'bootstrap'], function ($, undefined) {
//該function將在引入jquery和bootstrap完成之后執(zhí)行。
});
要使用我們自己定義的js,首先得用模塊化的方式編寫我們的js,使用define定義一個模塊:
define('modelname',['jquery','xxx'], function ($,xxx) {
var hehe = {
function1: function () {
},
function2: function () {
},
function3: function () {
}
};
return hehe;
});
define有三個參數(shù),第一個是模塊名(可以不寫,默認(rèn)與模塊名與文件名同名),第二個是當(dāng)前模塊依賴的其他模塊,第三個是一個function,模塊體,要求必須return一個數(shù)據(jù)。
PS:下面看下Fastadmin里面的js運(yùn)行原理
以category.js為例來,說明一下fastadmin里面js綁定事件的運(yùn)行原理。
第一行,定義引用的組件
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
add: function () {
Controller.api.bindevent();
},
這個代碼,代表調(diào)用api對象的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ù)第一部分是綁定類別變動的事件。
第二部分是是綁定窗體時間。
綁定窗體的代碼在/public/assets/js/require-form.js文件里面。
這里面定義了Form對象,在這里我們可以看到events事件。
里面包含validator,主要是做客戶端驗(yàn)證。有了這個就等于自動綁定了form驗(yàn)證,驗(yàn)證規(guī)則自己定制。
selectpicker 主要用于select下拉選擇。
此外還有selectpage、cxselect、citypicker、datetimepicker、plupload、faselect、fieldlist,此外可以自己定制。
總結(jié)
以上所述是小編給大家介紹的fastadmin中調(diào)用js的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
TypeError document.getElementById(...) is null錯誤原因
這篇文章主要介紹了TypeError document.getElementById(...) is null錯誤原因,這是很容易犯的一個低級錯誤,需要的朋友可以參考下2015-05-05
H5+C3+JS實(shí)現(xiàn)雙人對戰(zhàn)五子棋游戲(UI篇)
這篇文章主要為大家詳細(xì)介紹了H5+C3+JS實(shí)現(xiàn)雙人對戰(zhàn)五子棋游戲,實(shí)現(xiàn)雙人對戰(zhàn)模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09
使用jsonp實(shí)現(xiàn)跨域獲取數(shù)據(jù)實(shí)例講解
這篇文章主要介紹了使用jsonp實(shí)現(xiàn)跨域獲取數(shù)據(jù)實(shí)例講解,需要的朋友可以參考下2016-12-12
IE不出現(xiàn)Flash激活框的小發(fā)現(xiàn)的js實(shí)現(xiàn)方法
IE不出現(xiàn)Flash激活框的小發(fā)現(xiàn)的js實(shí)現(xiàn)方法...2007-09-09
js+canvas實(shí)現(xiàn)飛機(jī)大戰(zhàn)
這篇文章主要為大家詳細(xì)介紹了js?canvas實(shí)現(xiàn)飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
JS實(shí)現(xiàn)的添加彈出層并完成鎖屏操作示例
這篇文章主要介紹了JS實(shí)現(xiàn)的添加彈出層并完成鎖屏操作,涉及JS針對頁面元素與樣式動態(tài)操作相關(guān)技巧,需要的朋友可以參考下2017-04-04

