luketowers/oc-easyspa-plugin

使用 OctoberCMS AJAX 框架将单页应用程序功能添加到 OctoberCMS 前端

安装: 76

依赖项: 0

建议者: 0

安全性: 0

星标: 20

关注者: 4

分支: 16

公开问题: 5

语言:JavaScript

类型:october-plugin

v1.0.4 2020-09-23 08:39 UTC

This package is auto-updated.

Last update: 2024-08-23 16:59:19 UTC


README

使用 OctoberCMS AJAX 框架将单页应用程序功能添加到 OctoberCMS 前端。具体来说,它通过添加组件到您的布局中,启用通过 AJAX 加载和更新页面内容。

要求

此插件需要将 Ajax 框架 包含到您的布局/页面中,以便处理请求。

当前支持

目前仅支持加载新页面(静态页面或 CMS 页面,任何由 CMS 控制的 URL)。动态加载页面上的组件也将正常工作,并且会根据需要动态添加和删除资源。

安装

要从 Marketplace 安装,单击“添加到项目”按钮,然后选择您想要添加的项目,在更新项目以拉入插件之前。

要从后端安装,转到 设置 -> 更新和插件 -> 安装插件,然后搜索 LukeTowers.EasySPA

要从 存储库 安装,将其克隆到 plugins/luketowers/easyspa,然后从您的项目根目录运行 composer update 以拉入依赖项。

要使用 Composer 安装,从您的项目根目录运行 composer require luketowers/oc-easyspa-plugin

用法

要使用此插件,只需将 [easySPA] 组件附加到您想要通过 AJAX 加载页面内容的任何布局上。加载器需要附加到包含锚标签的页面元素,这些锚标签包含要加载的页面的 URL。这是通过在包含元素上添加 data-control="easy-spa-loader" 属性来完成的。还有一个可选的属性 data-refresh-partials,可以用来定义在页面加载时应该刷新的额外部分,格式为 partialPath1:#partialSelector1,额外的部分可以附加 & 符号。

示例布局

description="Default layout"
[easySPA]
==
<html>
    <head>
        ...
    </head>
    <body data-control="easy-spa-loader" data-refresh-partials="site/header:#site-header">
        <header id="site-header">
            {% partial 'site/header' %}
        </header>

        {% page %}

        <footer>
            ...
        </footer>
    </body>
</html>

第三方/自定义 JavaScript 的使用

由于此插件使用 Ajax 框架动态更改 DOM,因此在页面更新时,并非所有第三方 JavaScript 库/脚本都能正常工作。这是因为许多此类脚本依赖于 (window).load,而在 Ajax 更新期间不会触发。如果您有此类脚本,您可能需要在您的代码中使用 $(document).render 事件监听器重新实例化一些 JavaScript 对象。

示例(带有假第三方库)

 $(document).render(function(){
    $('.example-slider').slider({transition: 30});
    $('.example-carousel').carousel();
 }); 

注意:包含 $(document).render 事件监听器的脚本文件必须包含在 {% framework extras %} 之后(使用 script 标签)才能正常工作。