本次记录的是开发枫叶scrm时遇到的,问题是发现不同功能会有很多相同的调用,导致比较多的重复代码。
于是开始看CI4的文档,着手尝试不同的编写方法。
在后端新建一个控制器,单独作为api输出json数据;
use CodeIgniter\API\ResponseTrait; //文档上是写到方法上面的,好像是不能用的
use App\Controllers\User\Spreaders;
class Cluesapi extends \CodeIgniter\Controller
{
//输出推广者 的user_id 和 true_name
public function spreaders()
{
$spreader=new Spreaders();
$data['spreader']= $spreader->IdAndName();
$data['origin']= $spreader->SpreadOrigin();
return json_encode($data);
}
}
这里输出的就是需要的json数据;
2.前端页面,比如说select 下来选择(注意要添加id哦)
选择推广者
3.使用jq在页面加载完成之后开始执行
$.ajax({
cache: false,
async: false,
dataType: 'json', type: 'post',
url: "=site_url("/clue/Cluesapi/spreaders");?>", //这里是api的输出网址
success: function (data){
$.each(data.spreader,function(index,value){
$("#spreader").append('' + value.true_name +'');
});
//通过循环返回值和id 将下拉选项添加到select中,并通过下面这行代码,重新渲染
form.render('select', 'query');
}
});
经过这番改造之后,确实发现代码精简不少,接下来就是自我优化,不断完善自己。