我一直在玩奇妙的 Ractive.js 库(不要与 Facebook 的Reactive .js 混淆)。我发现您可以使用以下模板代码渲染二维:
<div class="container">
{{ #frameContainer:i }}
<div class="row">
{{ #frameContainer[i] }}
<div on-click="cell-click" class="cell {{ . ? 'on' : 'off' }}"></div>
{{ /frameContainer[] }}
</div>
{{ /frameContainer }}
</div>
这完全符合我的预期,内部cell-click
事件返回正确的密钥路径(例如frameContainer.2.4
)。
然后我想把它变成一个三维数组(添加一个“时间”轴)。但是,以下方法不起作用:
<div class="container">
{{ #frameContainer[time]:i }}
<div class="row">
{{ #frameContainer[time][i] }}
<div on-click="cell-click" class="cell {{ . ? 'on' : 'off' }}"></div>
{{ /frameContainer[][] }}
</div>
{{ /frameContainer }}
</div>
wheretime
代表当前时间值(它一次只会显示一个“时间” - 当你这样说时似乎很明显......)。
这......有点作品。它按应有的方式显示网格,但返回的cell-click
事件键路径不再正确,返回类似于${frameContainer-time-8-}.2
- 的东西,它已经失去了time
值(并且有点奇怪)。
显然,我可以通过使用currentFrame
渲染并切换的值来做到这一点ractive.set()
,但这似乎不太优雅。有没有办法纯粹在模板中做到这一点?而且,如果不是,那么最有效的方法是什么?
谢谢!