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 相关文章推荐
JQuery的Alert消息框插件使用介绍
Oct 09 Javascript
Javascript 浮点运算精度问题分析与解决
Mar 26 Javascript
java和javascript获取word文档的书签位置对比
Jun 19 Javascript
js控制页面的全屏展示和退出全屏显示的方法
Mar 10 Javascript
微信小程序 Flex布局详解
Oct 09 Javascript
JavaScript中校验银行卡号的实现代码
Dec 19 Javascript
Node.js连接MongoDB数据库产生的问题
Feb 08 Javascript
JavaScript对象引用与赋值实例详解
Mar 15 Javascript
jQuery 实时保存页面动态添加的数据的示例
Aug 14 jQuery
setTimeout与setInterval的区别浅析
Mar 23 Javascript
vue实现移动端H5数字键盘组件使用详解
Aug 25 Javascript
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
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
带密匙的php加密解密示例分享
2014/01/29 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
PHP读取txt文本文件并分页显示的方法
2015/03/11 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
2019/01/24 Javascript
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
详解Python中的文本处理
2015/04/11 Python
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
python使用socket进行简单网络连接的方法
2015/04/29 Python
pymongo实现多结果进行多列排序的方法
2015/05/16 Python
Python跨文件全局变量的实现方法示例
2017/12/10 Python
在Pycharm中修改文件默认打开方式的方法
2019/01/17 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
货代行业个人求职简历的自我评价
2013/10/22 职场文书
英文自我鉴定
2013/12/10 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
家长学校实施方案
2014/03/15 职场文书
安全生产演讲稿
2014/05/09 职场文书
黄埔军校观后感
2015/06/10 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书