7

我想做这样的事情:

{{#each user}}
    <span class="{{user.female ? 'female-span' : 'male-span'}}">{{name}}</span>
{{/each}}

这在 angularjs 之类的东西中很容易实现,但我不能做这个车把。当我想动态更改元素属性时,车把中要遵循的习惯用法/模式是什么?是否有任何车把插件可以做到这一点?

4

1 回答 1

9

Handlebars 只给了你{{#if}}帮助(可以在这里使用,它只是冗长)。由于逻辑较少,它不会评估括号内传递的代码(下划线模板会这样做)。

这是一件好事,因为它可以确保您的模板不会有任何副作用。

在这里,您可能希望从模板中删除此逻辑并将类名作为模板参数传递:

template({ genderClass: user.female ? 'female-span' : 'male-span' });

然后,在模板中:

<span class="{{genderClass}}">{{name}}</span>

在您的情况下,您在一个数组中,因此您可以添加genderClass为模型属性。否则,您可以使用自定义辅助方法,但对于一些非常简单的事情来说,这是很多开销。

于 2013-08-20T17:50:46.403 回答