给定一个映射到knockout.js
并使用自定义模板的数组,如何让数组中的每个项目使用不同的模板呈现?
这是jsFiddle 上所需功能示例的链接- 有点像人们希望的那样。
简单来说,给定一个这样的数组:
people: ko.observableArray([
{ name: 'Rod', age: 123, template: 'personItem' },
{ name: 'IBM', incorporated: 1911, template: 'corporateItem' },
])
如何设置一个foreach:
绑定,对某些项目使用一个模板,而对其他项目使用不同的模板。
(注意:我知道下划线模板的使用在某种程度上混淆了相关问题,并对任何不必要的混淆表示歉意。)
我考虑过使用一个带有一组if
绑定的模板 - 每个模板类型一个,如下所示:
<div data-bind='foreach: people'>
<div data-bind='if: people.template() == "personItem"'>
</div>
<div data-bind='if: people.template() == "corporateItem"'>
</div>
</div>
这似乎很不优雅,我怀疑(希望)有一个更优雅和相当简单的选择。
任何想法将不胜感激并感谢您的阅读。