$ idx可以用于变量变量吗?

时间:2014-03-30 06:25:44

标签: node.js dust.js

我有一个变量,其中包含验证期间出错的所有字段,即:

hasError = {
  firstName: 'First name is required',
  lastName: 'Last name is required'
}

然后我只是添加类,如果它们存在于错误中,如下所示:

{?hasError.firstName}error-class{/hasError.firstName}

这很有效。现在,我也有一些数组输入,如下所示:

<input type="text" name="friends[0][name]" value="">
<input type="text" name="friends[0][age]" value="">

当它们出错时,它们在我的hasError变量中看起来像这样:

hasError = {
  friends-name-0: 'Friend name is required',
  friends-age-0: 'Friend age is required'
}

我以为我可以在循环访问friends数组时使用$ idx在hasError中检查它,但它似乎不起作用。

如何才能实现这一点?

{#friends}
  {?hasError.friends-name-{$idx}}error-class{/hasError.friends-name-{$idx}}
{/friends}

如果需要,我可以更改hasError键的外观(friends-name-0)。

1 个答案:

答案 0 :(得分:0)

我似乎找到了解决方案。我不得不修改发送到模板的数据,如下所示:

hasError: {
  friends: {
    name: {
      0: 'Friend name is required',
      1: 'Friend name is required'
    }
  }
}

然后将我的模板更改为以下内容:

{?hasError.friends.name[$idx]}error-class{/hasError.friends.name[$idx]}

那里有很少的复杂尘埃。但是我设法偶然发现了一篇文章,里面有我正在寻找的东西。以下是可以帮助其他人的链接:

https://www.paypal-engineering.com/2013/12/05/dust-is-eloquent-round-and-round-we-go-2/