fastadmin中调用js的方法


Posted in Javascript onMay 14, 2019

想要了解fastadmin中的js是怎么调用的,就应该先了解RequireJs。

RequireJs是模块化工具,每一个我们自己的js文件或者库都可以看成是一个模块,按需引入。写法如下:

<script data-main="js/main" src="js/require.js"></script>

src是引入requrejs框架文件,data-main是我们自己的js的总入口。js/main对应的js文件是js/main.js(可自行命名)

 我们在写项目的时候肯定会用到一些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规范的库和js文件,shim是用来配不支持AMD规范的js。配好之后,假设现在要使用jquery和bootstrap,只要用require方法:

require(['jquery', 'bootstrap'], function ($, undefined) {
 //该function将在引入jquery和bootstrap完成之后执行。
});

 要使用我们自己定义的js,首先得用模块化的方式编写我们的js,使用define定义一个模块:

define('modelname',['jquery','xxx'], function ($,xxx) {
 var hehe = {
  function1: function () {
  },
  function2: function () {
  },
  function3: function () {
  }
 };
 return hehe;
});

define有三个参数,第一个是模块名(可以不写,默认与模块名与文件名同名),第二个是当前模块依赖的其他模块,第三个是一个function,模块体,要求必须return一个数据。

PS:下面看下Fastadmin里面的js运行原理

以category.js为例来,说明一下fastadmin里面js绑定事件的运行原理。

第一行,定义引用的组件

define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
add: function () {
  Controller.api.bindevent();
},

这个代码,代表调用api对象的bindevent函数。函数定义如下:

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]"));
}

函数第一部分是绑定类别变动的事件。

第二部分是是绑定窗体时间。

绑定窗体的代码在/public/assets/js/require-form.js文件里面。

这里面定义了Form对象,在这里我们可以看到events事件。

里面包含validator,主要是做客户端验证。有了这个就等于自动绑定了form验证,验证规则自己定制。

selectpicker 主要用于select下拉选择。

此外还有selectpage、cxselect、citypicker、datetimepicker、plupload、faselect、fieldlist,此外可以自己定制。

总结

以上所述是小编给大家介绍的fastadmin中调用js的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
用javascript获得地址栏参数的两种方法
Nov 08 Javascript
jQuery Jcrop插件实现图片选取功能
Nov 23 Javascript
javascript之querySelector和querySelectorAll使用介绍
Dec 20 Javascript
js获取微信版本号的方法
May 12 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
Dec 30 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
Jan 20 Javascript
AngularJS constant和value区别详解
Feb 28 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
Apr 08 Javascript
深入理解js 中async 函数的含义和用法
May 13 Javascript
json前后端数据交互相关代码
Sep 19 Javascript
详解JavaScript的变量
Apr 04 Javascript
vue中的.$mount('#app')手动挂载操作
Sep 02 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
May 14 #Javascript
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
May 14 #Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
May 14 #Javascript
详解jenkins自动化部署vue
May 14 #Javascript
基于JS实现前端压缩上传图片的实例代码
May 14 #Javascript
JavaScript如何实现元素全排列实例代码
May 14 #Javascript
微信小程序实现多选框全选与取消全选功能示例
May 14 #Javascript
You might like
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
用PHP制作的意见反馈表源码
2007/03/11 PHP
phpinfo 系统查看参数函数代码
2009/06/05 PHP
php站内搜索关键词变亮的实现方法
2014/12/30 PHP
php利用事务处理转账问题
2015/04/22 PHP
php中使用websocket详解
2016/09/23 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
2015/09/01 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
2016/05/10 Javascript
JavaScript中点击事件的写法
2016/06/28 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
基于jQuery实现多标签页切换的效果(web前端开发)
2016/07/24 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
python中 logging的使用详解
2017/10/25 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
介绍一下Java的事务处理
2012/12/07 面试题
自我鉴定范文
2013/11/10 职场文书
质检部职责
2013/12/28 职场文书
人事局接收函
2015/01/31 职场文书
2015年采购部工作总结
2015/04/23 职场文书
学雷锋献爱心倡议书
2015/04/27 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python