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 获取图片颜色
Apr 05 Javascript
JS模拟自动点击的简单实例
Aug 08 Javascript
js怎么覆盖原有方法实现重写
Sep 04 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
Sep 09 Javascript
用JavaScript获取页面文档内容的实现代码
Jun 10 Javascript
带有定位当前位置的百度地图前端web api实例代码
Jun 21 Javascript
JS实现仿百度文库评分功能
Jan 12 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 jQuery
ES6新特性三: Generator(生成器)函数详解
Apr 21 Javascript
深入理解Vue 的条件渲染和列表渲染
Sep 01 Javascript
JavaScript中七种流行的开源机器学习框架
Oct 11 Javascript
如何基于js判断浏览器版本
Feb 20 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
PHP脚本中include文件出错解决方法
2008/11/20 PHP
深入了解PHP类Class的概念
2012/06/14 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
PHP实现合并discuz用户
2015/08/05 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
ExtJS 入门
2010/10/29 Javascript
Javascript面向对象之四 继承
2011/02/08 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
ios设备中angularjs无法改变页面title的解决方法
2018/09/13 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
python实现将文本转换成语音的方法
2015/05/28 Python
Python Requests 基础入门
2016/04/07 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
Python实现时间序列可视化的方法
2019/08/06 Python
python-Web-flask-视图内容和模板知识点西宁街
2019/08/23 Python
Scrapy项目实战之爬取某社区用户详情
2020/09/17 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
2020/10/12 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
欧迪办公美国官网:Office Depot
2016/08/22 全球购物
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
客户接待方案
2014/02/26 职场文书
运动会广播稿100字
2014/09/14 职场文书
工作表扬信范文
2015/01/17 职场文书
golang中的空slice案例
2021/04/27 Golang
安装配置mysql及Navicat prenium的详细流程
2021/06/10 MySQL