php表格控制器,了解fastadmin标准的控制器模块js的表格事件

controller/A.phppublic/assets/js/backend/a.js

controller/b/A.phppublic/assets/js/backend/b/a.js

标准的控制器模块js

define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {

var Controller = {

index: function () {

// 初始化表格参数配置

Table.api.init({

extend: {

index_url: 'category/index',

add_url: 'category/add',

edit_url: 'category/edit',

del_url: 'category/del',

multi_url: 'category/multi',

dragsort_url: '',

table: 'category',

}

});

var table = $("#table");

// 初始化表格

table.bootstrapTable({

url: $.fn.bootstrapTable.defaults.extend.index_url,

escape: false,

pk: 'id',

sortName: 'weigh',

pagination: false,

commonSearch: false,

columns: [

[

{checkbox: true},

{field: 'id', title: __('Id')},

{field: 'type', title: __('Type')},

{field: 'name', title: __('Name'), align: 'left'},

{field: 'nickname', title: __('Nickname')},

{field: 'flag', title: __('Flag'), operate: false, formatter: Table.api.formatter.flag},

{field: 'image', title: __('Image'), operate: false, formatter: Table.api.formatter.image},

{field: 'weigh', title: __('Weigh')},

{field: 'status', title: __('Status'), operate: false, formatter: Table.api.formatter.status},

{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}

]

]

});

// 为表格绑定事件

Table.api.bindevent(table);

},

add: function () {

Controller.api.bindevent();

},

edit: function () {

Controller.api.bindevent();

},

api: {

bindevent: function () {

Form.api.bindevent($("form[role=form]"));

}

}

};

return Controller;

});

每一个控制器请求的方法对应JS模块中一个方法

js中有定义一个Controller 对象,它有index/add/edit/api四个方法,这四个方法分别与我们控制器中的方法一一对应

如果我们在js中添加了自己的方法,如detail方法,则对应添加Controller下的对应控制器文件下的detail方法

在public/assets/js/backend/a.js用define()定义了a模块

加载用require(['a'], function (a){...}

我们在require配置文件/assets/js/require-backend.js中找到

//加载相应模块

if (Config.jsname) {

require([Config.jsname], function (Controller) {

Controller[Config.actionname] != undefined && Controller[Config.actionname]();

}, function (e) {

console.error(e);

// 这里可捕获模块加载的错误

});

}

参数Config.jsname即为自定义的模块名(js文件),格式为:backend/a ;

Config.actionname为你在js模块定义的一个Controller对象的属性,属性有index/add/edit/api四个方法(对象),这四个方法分别与我们控制器中的方法一一对应

分别执行了模块js的idnex、add、edit、api这四个对象属性

Controller.index:

index调用的是Table.api.bindevent(table); 即调用的是require-table.js里的Table对象

上面这个table有什么对象呀,事件有哪些呢

Table.list //已经渲染的表格对象

Table.defaults Bootstrap-table表格默认列的配置

Table.columnDefaults bootstraptable column的默认参数

Table.config 表格相关DOM元素类配置 如定义的button等选择器

你可能感兴趣的:(php表格控制器)