定义标签: class添加selectpage的组件;data-source可以设置url以及Object;data-field显示读取的字段等设置,可参考
<input data-rule="required" data-source='goods/goods/selectpage' class="form-control selectpage" name="<%=name%>[<%=index%>][goods_id]" data-primary-key="id" data-pagination="true" type="text" value="" data-field="name" data-page-size="10">
在模块js中,引入selectpage组件
在操作对应方法中调用新创建的fieldlistBind
在Api定义fieldlistBind方法,以下代码
fieldlistBind: function () {
$(document).on(
"fa.event.appendfieldlist",
".btn-append",
function (e, el) {// e:事件对象 el:当前行对象
$(".selectpage", el).selectPage({
eSelect: function (data, self) {
// data 为当前选中列表项的接口数据对象
// ......实现逻辑
let index = $(self.elem.combo_input).data("index");// 获取行索引
let name = $(el).closest("table").data("name"); // 获取字段名称
let elStr =
"input[name='" +
name +
"[" +
index +
"][price]']"; // 组装好赋值文本元素选择器
$(elStr, el).val(data.price); // 赋值
},
eAjaxSuccess: function (data) {
data.list =
typeof data.rows !== "undefined"
? data.rows
: typeof data.list !== "undefined"
? data.list
: [];
data.totalRow =
typeof data.total !== "undefined"
? data.total
: typeof data.totalRow !== "undefined"
? data.totalRow
: data.list.length;
return data;
},
});
}
);
}
数据源url调用方式,需在控制器定义以下方法,仅供参考
public function selectpage()
{
return parent::selectpage(); // TODO: Change the autogenerated stub
}