slavawins/easyapi

0.2.5 2024-02-29 16:13 UTC

This package is auto-updated.

Last update: 2024-09-29 17:18:25 UTC


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")