本来是为了解决使用自定义页面form方法后,加载的其他js失效的问题。
尝试将js写入blade模板中,然后再加载模板,无效。
尝试将js写入全局页面中,无效。
尝试将id pjax-container 替换到from所在的div上,也无效。因为返回的是整个页面的html代码【就是content区域】,而不是指定的div上。
使用如下代码监测后
PHP
// after replacing content
$(document).on('pjax:end', function() {
$(function(){
oDiv = $('.row');
console.log(oDiv);
});
});
1
2
3
4
5
6
7
// after replacing content
$(document).on('pjax:end',function(){
$(function(){
oDiv=$('.row');
console.log(oDiv);
});
});
发现每提交一次,整个view就重新加载一次,提交两次,则加载两次。
最后发现不得不改动laravel-admin的源代码。最后得到了一些新的功能,就是使用自定义方法,使用自定义模板,利用laravel-admin的form组件来实现一些功能。
比如我们前端经常使用的首页某个区域有登录区域,登录后,这一块区域进行局部刷新处理。【对后台貌似没有什么卵用,呵呵。】
1、\vendor\encore\laravel-admin\src\Form\Builder.php 新增一个属性。
2、\vendor\encore\laravel-admin\src\Form.php 新增一个方法。设置刷新的区域
3、\vendor\encore\laravel-admin\src\Form\Builder.php open()方法修改。
4、\vendor\laravel-admin\laravel-admin\laravel-admin.js 修改提交后指定刷新的区域,这个值pjax-form是我自己定义的。
5、使用方式。
A、本方法不能应用在系统自己生成的form方法中。而是需要自定义一个方法。方法的参数是:Content $content
B、一般情况下需要自定义模板。所以这里可以发挥的地方就很多了。