在Tiddler中,如何列出其所有字段及其值?

问题描述

我使用TiddlyWiki,试图在特定的Tiddler中显示该Tiddler所有字段的子集及其值。

问题是,尽管我能够列出所有相关字段的名称,但无法打印它们的值。

我当前的代码是:

<$list filter="[fields[]prefix[Result_]sort[title]]"  template="$:/zx/ListFieldItemTemplate"/>

...旨在列出以Result_开头的所有字段。

(简化的)模板$:/zx/ListFieldItemTemplate是:

<div>
    <$view field="title"/>
</div>

我担心列表小部件仅发送字段名称,而不发送值,这意味着无法从模板获取该值。因此,我可能还需要以某种方式发送值。但是我不知道如何。

解决方法

一种可能是使用宏。

在您的提琴手中,进行以下宏调用:

<<myMacro prefix:"Result_">>

(目的是仅将字段过滤为以“ Result_”开头的字段。)

然后,创建一个新的tiddler,其名称并不重要,但必须包含标签$:/tags/Macro才能使该宏全局可用。然后在那个提琴手中,编写以下代码:

\define myMacro(prefix:"")
<$list filter="[fields[]prefix[$prefix$]sort[title]]" variable="fieldName">
<<fieldName>>
====
<$view field=<<fieldName>>/>
</$list>
\end

这将输出类似:

Result_MyFieldName1 ==== MyFieldValue1
Result_MyFieldName2 ==== MyFieldValue2
Result_MyFieldName3 ==== MyFieldValue3
Result_MyFieldName4 ==== MyFieldValue4

当然,您可以修改宏以使用自己的格式。