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 一行代码,轻松搞定浮动快捷留言-V2升级版
Apr 02 Javascript
基于jquery的跨域调用文件
Nov 19 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
Nov 17 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
Mar 27 Javascript
JS实现网站菜单拖拽移位效果的方法
Sep 24 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
May 20 Javascript
js return返回多个值,通过对象的属性访问方法
Feb 21 Javascript
socket.io学习教程之基础介绍(一)
Apr 29 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
Nov 30 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
Jan 22 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
Sep 26 Javascript
js实现淘宝首页的banner栏效果
Nov 26 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
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
JavaScript获取当前日期是星期几的方法
2015/04/06 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
微信开发 微信授权详解
2016/10/21 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
解决vuex数据页面刷新后初始化操作
2020/07/26 Javascript
[07:47]DOTA2国际邀请赛采访专栏:探访Valve总部
2013/08/08 DOTA
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
Django中使用Celery的教程详解
2018/08/24 Python
Python3多线程基础知识点
2019/02/19 Python
超实用的 30 段 Python 案例
2019/10/10 Python
python图形用户接口实例详解
2019/12/16 Python
tensorflow estimator 使用hook实现finetune方式
2020/01/21 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
阿玛尼美妆加拿大官方商城:Giorgio Armani Beauty加拿大
2017/10/24 全球购物
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
内业资料员岗位职责
2014/01/04 职场文书
模范教师事迹材料
2014/02/10 职场文书
医学专业应届生的自我评价
2014/02/28 职场文书
元旦晚会主持词
2014/03/24 职场文书
幼儿园老师寄语
2014/04/03 职场文书
《谁的本领大》教后反思
2014/04/25 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
自荐信格式模板
2015/03/27 职场文书
叶问观后感
2015/06/15 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书