想知道是否有人尝试将服务器返回的一段标记转换为可重用的 Aurelia 模板?
让我用一个简单的例子来解释我在说什么。假设服务器呈现一个页面,其中包含一个类别的产品列表。加载页面后,我想重用表示单个产品的标记,并使用 Aurelia 的转发器为另一个类别呈现产品列表。我正在寻找一种无需在客户端复制标记即可增强页面行为的方法。
因此,假设服务器返回类似的内容:
<ul>
<li class='item'><div>Item content</div></li>
<li class='item'><div>Item content</div></li>
</ul>
我想将<li>
元素转换为 Aurelia 模板,这样我就可以使用标记来使用 Aurelaia 转发器呈现另一个项目列表,并动态加载数据。
我对如何实现它几乎没有什么想法,即从加载的页面中提取标记并将其传递给实现 InlineViewStrategy 的自定义元素。
我很好奇其他人会如何解决这个问题。
更新:
所以目前我添加了一个新的自定义属性“as-template”,它提取装饰元素的标记并将其保存为“item”模板。稍后在一个自定义元素中,我检索这个保存的标记并使用 ViewCompiler 编译它。
<ul>
<li class='item' as-template="item"><div>Item content</div></li>
<li class='item' as-template="item"><div>Item content</div></li>
</ul>
示例编译片段(不是我的实际代码)
let view =viewCompiler.compile('<template>templateMarkup</template>',viewResources).create(container);
view.bind(context);
viewSlot.add(view);
viewSlot.attached();