slavawins / easyapi
Expa
0.2.5
2024-02-29 16:13 UTC
Requires
- php: ^7.3|^8.0
README
EasyApi
简单包
使用composer安装
composer require slavawins/easyapi
发布js文件、视图和迁移等必要文件。调用以下命令:
php artisan vendor:publish --provider="EasyApi\Providers\EasyApiServiceProvider"
连接
<script src="{{ asset('js/easyapi/easyclass.js') }}"></script>
<script src="{{ asset('js/easyapi/easyapi.js') }}"></script>
<script src="{{ asset('js/easyapi/easyform.js') }}" defer></script>
Ajax表单
这是一个非常酷的东西,叫做ajaxform,它是Laravel的一个组件,可以创建带有正确crf令牌的表单。它自动创建按钮和表单,并处理API的response json。也就是说,如果响应中有错误,它会显示错误;如果服务器错误类型为404,它也会处理。这些表单通过ajax请求发送,即不刷新页面。
<x-easy-form route="{{route('product.buy', $product)}}" btn="Купить" onSuccess="EasyApi.UpdatePage">
@php
FElement::NewInputText()
->SetLabel("Количество")
->SetName("amount")
->SetValue(1)
->FrontendValidate()->Digital(1)
->SetPlaceholder("Сколько купить?")
->RenderHtml(true);
@endphp
</x-easy-form>
onSuccess - 这个属性在表单成功执行时被调用,即接收到成功的200 OK响应时。这时可以在这里放置一个更新页面的JavaScript函数。
通过ajax更新页面
技巧:有一个函数可以通过Get请求获取某个页面的内容,然后根据HTML代码中的注释截取内容。它知道内容在哪里,以及需要删除的内容在哪里。
非常酷的技巧。这意味着需要将模板包裹在注释中。我的app.blade模板中,内容放置的位置就是注释包裹的地方。
<div id="app">
<!-- easycontent.start -->
@yield('app')
<!-- easycontent.end -->
</div>
然后调用这个JS函数来自动更新页面。它会做出一种效果,好像页面正在加载,并更新内容。它还会在浏览器中更新,但为了让人更新页面,使其回到内容加载的地方。
EasyApi.UpdatePage();
EasyApi.UpdatePage('/');
基于这个函数,还有一个触发器,可以通过Get请求更新当前页面,这非常适合Ford,例如用户点击购买商品时,屏幕上的余额应该减少。我们调用这个函数,它会执行Get请求,并使用更新页面(Update Page)来更新当前页面。
EasyApi.CallGetAndUpdatePage("/call/xz/2")
