首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Squarespace:查询父作用域

Squarespace:查询父作用域
EN

Stack Overflow用户
提问于 2021-11-23 01:24:16
回答 1查看 24关注 0票数 1

我使用的是Squarespace的开发平台。

有没有办法突破squarespace:query标记的作用域?在标记内部,似乎不可能在其外部引用任何键/值/变量。我只想根据正在构建的页面(使用squarespace:query的页面)中的变量来显示特定集合项目的内容。

示例代码片段:

代码语言:javascript
复制
<div class="infosection" data-info-section="Series">
<p id="seriesTitle">
{customContent.seriesName}
</p>
<p id="seriesBlurb">
<squarespace:query collection="series-1" category="{customContent.seriesName}">
{# No apparent way to break out of query tag scope, have to ghetto rig a filter with 'category' attribute}
<script>console.log({@|json-pretty})</script>
{.section items.0}
{excerpt}
{.end}
</squarespace:query>
</p>
</div>
EN

回答 1

Stack Overflow用户

发布于 2021-11-23 02:39:58

不幸的是,您没有办法从查询之外访问数据,这一点是正确的。类似地,也没有办法从查询外部将数据传递到查询中(例如,通过var指令)。这很不幸,因为这通常是var指令的最佳用例,但它就是不能以这种方式工作。

因此,在JSON-T模板系统中使用带有标记和/或类别过滤器的查询确实是唯一的方法( JSONP请求除外,见下文)。

另一种选择是使用JavaScript。通过添加参数/series-1?format=json,Squarespace站点上的几乎每个页面都可以请求为JSON数据。因此,您可以发出AJAX请求并以这种方式使用数据。或者,向URL发出JSONP请求,如下所示:

代码语言:javascript
复制
<script>
  function mycallbackFn(jsonData) {
    // do stuff with the jsonData here. You could even build your own template literal if you only need to support modern browsers.
  }
</script>

<script src="/{fullUrl}/?format=json&callback=mycallbackFn"></script>

理论上,您可以将其直接插入到JSON-T中。但是,如果求助于JavaScript,AJAX方法可能更易于维护。内容也不容易被索引,被动态添加。

在某些情况下,另一种方法是将所有变体硬编码到查询中,如下面的示例所示。这可能对您的情况没有帮助,但我之所以包括这一点,是因为它有时是解决与您相关的问题的一种方法:

(此示例假设项目只分配了一个类别。)

代码语言:javascript
复制
<squarespace:query collection="mycollectionslug" limit="99">
{.repeated section items}
  {.repeated section categories}
    {.equal?:@:"My Category 1"}
      <p>Content specific to my category 1.</p>
    {.end}
    {.or equal?:@:"My Category 2"}
      <p>Content specific to my category 2.</p>
    {.end}
    {# etc.}
  {.end}
{.end
</squarespace:query>

但是,总而言之,您遇到的关于squarespace:query和scope的限制是一个常见的限制,并且只能以某种不太理想的方式解决,正如您已经发现的那样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70074301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档