模板中的可绑定Iterable

时间:2018-08-03 08:54:15

标签: templates aurelia

我有一个正在运行的Aurelia应用程序,正在使用带有可绑定参数的模板。

<template bindable="textitems">
  ${textitems}
  <section id="one" class="wrapper">
    <div class="inner flex flex-3">
      <div class="flex-item left">
        <div repeat.for="textitem of textitems">
          <p>${textitem}</p>
        </div>
      </div>
    </div>
  </section>
</template>

我正在像这样传递它 <attractor textitems="${attractors}"></attractor>,其中吸引子是项目的数组。

这基本上不符合我的要求。 ${textitems}在这种情况下one,two吐出了正确的内容,但是-当涉及到该节的重复时,aurelia抱怨说(textitems)不可迭代。

enter image description here

此后,我发现这是因为它成为正在输出的数组的字符串。因此它变成'one,two'而不是['one','two']

如果是这样,我必须有更好的方法将这些数据向下传递到模板中。

Bindable绝对是最干净的方法,但Id爱被证明是错误的。

感谢您的时间,似乎还没有人遇到这个问题,但是我才刚刚起步,我认为它将对其他人有所帮助。

1 个答案:

答案 0 :(得分:0)

我需要在原始模板调用的可绑定部分添加.bind。

textitems="${attractors}"-使传递的值成为呈现为字符串的数组。

textitems="attractors"-使传递的值从字面上是单词attractors

textitems.bind="attractors"-使传递的值成为数组-如预期的那样。 (由Jesse de Bruijne建议)

可以假定Aurelia需要.bind将该项目作为它的对象来处理,而不是字符串的呈现。 $ {}语法使模板吐出任何东西的文本呈现,只放入变量名就吐出名称本身。